📄 flags.java
字号:
/**
* @(#)Flags.java 1.21 03/01/23
*
* Copyright 2003 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package com.sun.tools.javac.v8.code;
/**
* Access flags and other modifiers for Java classes and members.
*/
public interface Flags {
int PUBLIC = 1 << 0;
int PRIVATE = 1 << 1;
int PROTECTED = 1 << 2;
int STATIC = 1 << 3;
int FINAL = 1 << 4;
int SYNCHRONIZED = 1 << 5;
int VOLATILE = 1 << 6;
int TRANSIENT = 1 << 7;
int NATIVE = 1 << 8;
int INTERFACE = 1 << 9;
int ABSTRACT = 1 << 10;
int STRICTFP = 1 << 11;
int StandardFlags = 4095;
int ACC_SUPER = SYNCHRONIZED;
/**
* Flag is set if symbol has a synthetic attribute.
*/
int SYNTHETIC = 1 << 16;
/**
* Flag is set if symbol is deprecated.
*/
int DEPRECATED = 1 << 17;
/**
* Flag is set for a variable symbol if the variable's definition
* has an initializer part.
*/
int HASINIT = 1 << 18;
/**
* Flag is set for compiler-generated anonymous method symbols
* that `own' an initializer block.
*/
int BLOCK = 1 << 20;
/**
* Flag is set for compiler-generated abstract methods that implement
* an interface method (Miranda methods).
*/
int IPROXY = 1 << 21;
/**
* Flag is set for nested classes that do not access instance members or `this'
* of an outer class and therefore don't need to be passed a this$n reference.
* This flag is currently set only for anonymous classes in superclass
* constructor calls and only for pre 1.4 targets.
* todo: use this flag for optimizing away this$n parameters in other cases.
*/
int NOOUTERTHIS = 1 << 22;
/**
* Flag is set for package symbols if a package has a member or
* directory and therefore exists.
*/
int EXISTS = 1 << 23;
/**
* Flag is set for compiler-generated compound classes
* representing multiple variable bounds
*/
int COMPOUND = 1 << 24;
/**
* Flag is set for class symbols if a class file was found for this class.
*/
int CLASS_SEEN = 1 << 25;
/**
* Flag is set for class symbols if a source file was found for this class.
*/
int SOURCE_SEEN = 1 << 26;
/**
* Flag for class symbols is set and later re-set as a lock in Enter
* to detect cycles in the superclass/superinterface relations.
* Similarly for constructor methods in Attr.
*/
int LOCKED = 1 << 27;
/**
* Flag for class symbols is set and later re-set to indicate that a class
* has been entered but has not yet been attributed.
*/
int UNATTRIBUTED = 1 << 28;
/**
* Flag for synthesized default constructors of anonymous classes.
*/
int ANONCONSTR = 1 << 29;
/**
* Flag for class symbols and constructors to indicate it has been checked
* and found acyclic.
*/
int ACYCLIC = 1 << 30;
/**
* Flag that marks formal parameters.
*/
long PARAMETER = 1L << 33;
/**
* Modifier masks.
*/
long AccessFlags = PUBLIC | PROTECTED | PRIVATE;
/**
* Modifier masks.
*/
long LocalClassFlags = FINAL | ABSTRACT | STRICTFP;
/**
* Modifier masks.
*/
long MemberClassFlags = LocalClassFlags | INTERFACE | AccessFlags;
/**
* Modifier masks.
*/
long ClassFlags = LocalClassFlags | INTERFACE | PUBLIC;
/**
* Modifier masks.
*/
long LocalVarFlags = FINAL | PARAMETER;
/**
* Modifier masks.
*/
long InterfaceVarFlags = FINAL | STATIC | PUBLIC;
/**
* Modifier masks.
*/
long VarFlags = AccessFlags | FINAL | STATIC | VOLATILE | TRANSIENT;
/**
* Modifier masks.
*/
long ConstructorFlags = AccessFlags;
/**
* Modifier masks.
*/
long InterfaceMethodFlags = ABSTRACT | PUBLIC;
/**
* Modifier masks.
*/
long MethodFlags =
AccessFlags | ABSTRACT | STATIC | NATIVE | SYNCHRONIZED | FINAL |
STRICTFP;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -