Java 教程是为 JDK 8 编写的。本页中描述的示例和实践未利用在后续版本中引入的改进。
The HighScorePermission
class defines the permission that ExampleGame
needs to update the user's high score.
All permission classes should subclass from either java.security.Permission
or java.security.BasicPermission
. The basic difference between the two is that java.security.Permission
defines more complex permissions that require names and actions. For example, a java.io.FilePermission
extends from java.security.Permission
, and requires a name (a filename), and actions allowed for that file (read/write/delete).
In contrast, java.security.BasicPermission
defines simpler permissions that only require a name. For example, java.lang.RuntimePermission
extends from java.security.BasicPermission
and simply needs a name (like "exitVM"), which allows programs to exit the Java Virtual Machine.
Our HighScorePermission
is a simple permission, and hence can be extended from java.security.BasicPermission
.
Often, the method implementations in the BasicPermission
class itself do not need to be overridden by its subclasses. That is the case with our HighScorePermission
, so all we need to implement are the constructors, which just invoke the superclass constructors, as shown in the
following
:
package com.scoredev.scores; import java.security.*; public final class HighScorePermission extends BasicPermission { public HighScorePermission(String name) { super(name); } // note that actions is ignored and not used, // but this constructor is still needed public HighScorePermission(String name, String actions) { super(name, actions); } }