java.applet

java.awt

java.awt.color

java.awt.datatransfer

java.awt.dnd

java.awt.event

java.awt.font

java.awt.geom

java.awt.im

java.awt.im.spi

java.awt.image

java.awt.image.renderable

java.awt.print

java.beans

java.beans.beancontext

java.io

java.lang

java.lang.annotation

java.lang.instrument

java.lang.management

java.lang.ref

java.lang.reflect

java.math

java.net

java.nio

java.nio.channels

java.nio.channels.spi

java.nio.charset

java.nio.charset.spi

java.rmi

java.rmi.activation

java.rmi.dgc

java.rmi.registry

java.rmi.server

java.security

java.security.acl

java.security.cert

java.security.interfaces

java.security.spec

java.sql

java.text

java.util

java.util.concurrent

java.util.concurrent.atomic

java.util.concurrent.locks

java.util.jar

java.util.logging

java.util.prefs

java.util.regex

java.util.zip

javax.accessibility

javax.activity

javax.crypto

javax.crypto.interfaces

javax.crypto.spec

javax.imageio

javax.imageio.event

javax.imageio.metadata

javax.imageio.plugins.bmp

javax.imageio.plugins.jpeg

javax.imageio.spi

javax.imageio.stream

javax.management

javax.management.loading

javax.management.modelmbean

javax.management.monitor

javax.management.openmbean

javax.management.relation

javax.management.remote

javax.management.remote.rmi

javax.management.timer

javax.naming

javax.naming.directory

javax.naming.event

javax.naming.ldap

javax.naming.spi

javax.net

javax.net.ssl

javax.print

javax.print.attribute

javax.print.attribute.standard

javax.print.event

javax.rmi

javax.rmi.CORBA

javax.rmi.ssl

javax.security.auth

javax.security.auth.callback

javax.security.auth.kerberos

javax.security.auth.login

javax.security.auth.spi

javax.security.auth.x500

javax.security.cert

javax.security.sasl

javax.sound.midi

javax.sound.midi.spi

javax.sound.sampled

javax.sound.sampled.spi

javax.sql

javax.sql.rowset

javax.sql.rowset.serial

javax.sql.rowset.spi

javax.swing

javax.swing.border

javax.swing.colorchooser

javax.swing.event

javax.swing.filechooser

javax.swing.plaf

javax.swing.plaf.basic

javax.swing.plaf.metal

javax.swing.plaf.multi

javax.swing.plaf.synth

javax.swing.table

javax.swing.text

javax.swing.text

javax.swing.text.parser

javax.swing.text.rtf

javax.swing.tree

javax.swing.undo

javax.transaction

javax.transaction.xa

javax.xml

javax.xml.datatype

javax.xml.namespace

javax.xml.parsers

javax.xml.transform

javax.xml.transform.dom

javax.xml.transform.sax

javax.xml.transform.stream

javax.xml.validation

javax.xml.xpath

org.ietf.jgss

org.omg.CORBA

org.omg.CORBA_2_3

org.omg.CORBA_2_3.portable

org.omg.CORBA.DynAnyPackage

org.omg.CORBA.ORBPackage

org.omg.CORBA.portable

org.omg.CORBA.TypeCodePackage

org.omg.CosNaming

org.omg.CosNaming.NamingContextExtPackage

org.omg.CosNaming.NamingContextPackage

org.omg.Dynamic

org.omg.DynamicAny

org.omg.DynamicAny.DynAnyFactoryPackage

org.omg.DynamicAny.DynAnyPackage

org.omg.IOP

org.omg.IOP.CodecFactoryPackage

org.omg.IOP.CodecPackage

org.omg.Messaging

org.omg.PortableInterceptor

org.omg.PortableInterceptor.ORBInitInfoPackage

org.omg.PortableServer

org.omg.PortableServer.CurrentPackage

org.omg.PortableServer.POAManagerPackage

org.omg.PortableServer.POAPackage

org.omg.PortableServer.portable

org.omg.PortableServer.ServantLocatorPackage

org.omg.SendingContext

org.omg.stub.java.rmi

org.w3c.dom

org.w3c.dom.bootstrap

org.w3c.dom.events

org.w3c.dom.ls

org.xml.sax

org.xml.sax.ext

org.xml.sax.helpers

allclasses-frame

allclasses-noframe

constant-values

deprecated-list

help-doc

JavaTM 2 Platform
Standard Ed. 5.0

java.security
类 PermissionCollection

java.lang.Object
  继承者 java.security.PermissionCollection
所有已实现的接口:
Serializable
直接已知子类:
Permissions

public abstract class PermissionCollection
extends Object
implements Serializable

表示 Permission 对象集合的抽象类。

使用 PermissionCollection,您可以:

  • 使用 add 方法向集合添加权限。
  • 使用 implies 方法查看是否集合中暗含了特定的权限。
  • 使用 elements 方法枚举所有的权限。

当需要集合许多相同类型的 Permission 对象时,首先应该调用该特定 Permission 对象类型上的 newPermissionCollection 方法。默认的行为(来自 Permission 类)只是返回 null。如果 Permission 类的子类需要在一个特定的 PermissionCollection 对象中存储其权限,以便调用 PermissionCollection.implies 方法时能提供正确的语义,则它们应该重写此方法。如果返回非 null 值,一定要使用该 PermissionCollection。如果返回 null,那么 newPermissionCollection 的调用方可以在任何它们选择的 PermissionCollection(使用 Hashtable 的,使用 Vector 的,等等)中随意存储给定类型的权限。

Permission.newPermissionCollection 方法返回的 PermissionCollection 是同类的集合,它们只存储给定 Permission 类型的 Permission 对象。PermissionCollection 也可以是不同种类的。例如,Permissions 是 PermissionCollection 的子类,表示 PermissionCollection 的集合。也就是说,它的每一个成员是一个同类的 PermissionCollection。例如,一个 Permissions 对象可能有一个用于所有 FilePermission 对象的 FilePermissionCollection,有一个用于所有的 SocketPermission 对象的 SocketPermissionCollection,等等。它的 add 方法将权限添加到恰当的集合。

只要将一个权限添加到不同种类的 PermissionCollection(如 Permissions),并且 PermissionCollection 尚未包含指定权限类型的 PermissionCollection,PermissionCollection 都应该对该权限的类调用 newPermissionCollection 方法来查看其是否需要特殊的 PermissionCollection。如果 newPermissionCollection 返回 null,则 PermissionCollection 可以将权限随意存储在它需要的任何类型的 PermissionCollection 中(使用 Hashtable 的,使用 Vector 的,等等)。例如,Permissions 对象使用默认的 PermissionCollection 实现,该实现将权限存储在 Hashtable 中。

PermissionCollection 的子类实现应该假定它们可能在多个线程中被同时调用,因此应该被正确地同步。此外,通过 elements 方法返回的枚举不是快速失败 的。正在对一个集合进行枚举时,不应该修改该集合。

另请参见:
Permission, Permissions, 序列化表格

构造方法摘要
PermissionCollection()
           
 
方法摘要
abstract  void add(Permission permission)
          将一个权限对象添加到当前权限对象的集合。
abstract  Enumeration<Permission> elements()
          返回集合中所有 Permission 对象的枚举。
abstract  boolean implies(Permission permission)
          查看此 PermissionCollection 中保存的 Permission 对象集合是否暗含指定的权限。
 boolean isReadOnly()
          如果此 PermissionCollection 对象被标记为只读,则返回 true。
 void setReadOnly()
          将此 PermissionCollection 对象标记为 "readonly"。
 String toString()
          返回描述此 PermissionCollection 对象的字符串,提供该对象中包含的关于所有权限的信息。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

PermissionCollection

public PermissionCollection()
方法详细信息

add

public abstract void add(Permission permission)
将一个权限对象添加到当前权限对象的集合。

参数:
permission - 要添加的 Permission 对象。
抛出:
SecurityException - 如果此 PermissionCollection 对象已被标记为只读。

implies

public abstract boolean implies(Permission permission)
查看此 PermissionCollection 中保存的 Permission 对象集合是否暗含指定的权限。

参数:
permission - 要比较的 Permission 对象。
返回:
如果集合中的权限暗含 "permission",则返回 true;否则返回 false。

elements

public abstract Enumeration<Permission> elements()
返回集合中所有 Permission 对象的枚举。

返回:
所有 Permission 的枚举。

setReadOnly

public void setReadOnly()
将此 PermissionCollection 对象标记为 "readonly"。当 PermissionCollection 对象被标记为只读后,不能使用 add 向其中添加任何新的 Permission 对象。


isReadOnly

public boolean isReadOnly()
如果此 PermissionCollection 对象被标记为只读,则返回 true。如果它是只读的,则不能使用 add 向其中添加任何新的 Permission 对象。

默认情况下,对象 是只读的。它可以通过调用 setReadOnly 设置为只读。

返回:
如果此 PermissionCollection 对象被标记为只读,则返回 true ;否则返回 false。

toString

public String toString()
返回描述此 PermissionCollection 对象的字符串,提供该对象中包含的关于所有权限的信息。格式为:
super.toString() (
   // enumerate all the Permission
   // objects and call toString() on them,
   // one per line..
 )
super.toString 调用此对象的超类的 toString 方法,其超类是 Object。结果是此 PermissionCollection 的类型名称,后跟此对象的哈希码,因此使客户端能区分不同的 PermissionCollections 对象,即使它们包含相同的权限。

覆盖:
Object 中的 toString
返回:
有关此 PermissionCollection 对象的信息,如上所述。

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策