实现属性API的Java程序
有效的属性名称不区分大小写,它们仅限于 [0-9,az, A-Z_-] 集合中的 ASCII字符,并且长度不能超过 70 个字符。该属性的值可以包含任何字符,并且在写入任何程序中的输出流时将以 UTF-8 编码。这是实现属性 API 的Java程序的源代码。程序运行成功,程序的输出也如下所示:
程序:
- 设置属性
- 在 main() 方法中创建类的对象并将其命名为“属性”。
- 分配属性。
- 使用putValue()方法将与键名关联的值 Value 存储在此 Attribute 中。
- 使用keySet()方法返回一个包含在此 Attributes 中找到的所有键的 Set。
- 遍历对象类型的集合接口的迭代器。
- 使用 hasNext() 方法检查条件,该方法在剩余单个元素以打印元素之前一直有效。
- 使用 clear() 方法清除集合中的所有属性对象。
- 最后,无论属性是否为空,都打印显示消息。
执行:
例子
Java
// Java Program to Implement Attribute API
// Importing classes from
// java.util package
import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.jar.Attributes;
// Class
public class GFG {
private Attributes attributes;
// Constructor 1
// Constructs a new, empty Attributes object
// with default size
public GFG() { attributes = new Attributes(); }
// Constructor 2
// Constructs a new Attributes object
// with the same attribute name-value mappings
// as in the specified Attributes.
public GFG(Attributes attr)
{
attributes = new Attributes(attr);
}
// Constructor 3
// Constructs a new, empty Attributes object
// with the specified initial size.
public GFG(int size)
{
attributes = new Attributes(size);
}
// Method 1 - clear()
public void clear()
{
// Removes all attributes from this Map
attributes.clear();
}
// Method 2 - clone()
public Object clone()
{
// Returns a copy of the Attributes
// Returns true if this Map contains
// the specified attribute name (key)
return attributes.clone();
}
// Method 3 - containsKey()
public boolean containsKey(Object key)
{
// Returns true if this Map maps one or more
// attribute names to the specified value.
return attributes.containsKey(key);
}
// Method 4 - containsValue()
public boolean containsValue(Object value)
{
// Returns a Collection view of the attribute
// name-value mappings contained in this Map
return attributes.containsValue(value);
}
// Method 5 - entrySet()
public Set > entrySet()
{
// Returns the value of the specified attribute name
// or NULL if the attribute name is not present
return attributes.entrySet();
}
// Method 6 - get()
public Object get(Object key)
{
// Returns the value of the specified
// Attributes.Name, or null if the attribute is not
// present
return attributes.get(key);
}
// Method 7 - getValue()
public String getValue(Attributes.Name name)
{
// Returns the value of the specified attribute
// name, specified as a string, or null if the
// attribute was not found.
return attributes.getValue(name);
}
// Method 8 - getValue()
public String getValue(String name)
{
// Returns true if this Map contains no attributes
return attributes.getValue(name);
}
// Method 9 - isEmpty()
public boolean isEmpty()
{
// Returns a Set view of the attribute names (keys)
// contained in this Map
return attributes.isEmpty();
}
// Method 10 - keySet()
public Set
输出
the key set of the Attributes is
CLASS_PATH CONTENT_TYPE MANIFEST_VERSION MAIN_CLASS
the values of the Attributes is
root/sub_dir/class_path UTF-8 2 TESTMAIN.java
the entry set of the Attributes is
CLASS_PATH=root/sub_dir/class_path
CONTENT_TYPE=UTF-8
MANIFEST_VERSION=2
MAIN_CLASS=TESTMAIN.java
the Attributes contains Key CLASS_PATH:true
the Attributes contains Value TESTMAIN.java :true
the size of the Attributes is 4
the Attributes is empty