Java中的修饰符 isSynchronized(mod) 方法及示例
Java.lang.reflect.Modifier的isSynchronized(mod)方法用于检查整数参数是否包含同步修饰符。如果此整数参数表示同步类型修饰符,则方法返回 true,否则返回 false。
句法:
public static boolean isSynchronized(int mod)
参数:此方法接受一个整数名称,因为 mod 表示一组修饰符。
Return :如果 mod 包含 synchronized 修饰符,此方法返回 true;否则为假。
下面的程序说明了 isSynchronized() 方法:
方案一:
// Java program to illustrate isSynchronized() method
import java.lang.reflect.*;
public class GFG {
public static void main(String[] args)
throws NoSuchFieldException,
SecurityException
{
// get Method class object
Method[] methods
= GFGTest.class.getMethods();
// get Modifier Integer value
int mod = methods[0].getModifiers();
// check Modifier is synchronized or not
boolean result
= Modifier.isSynchronized(mod);
System.out.println("Mod integer value "
+ mod + " is synchronized : "
+ result);
}
class GFGTest {
public synchronized String method1()
{
return null;
}
}
}
输出:
Mod integer value 33 is synchronized : true
方案二:
// Java program to illustrate isSynchronized()
import java.lang.reflect.*;
public class GFG {
public static void main(String[] args)
throws NoSuchFieldException,
SecurityException
{
// get Method class object
Method[] methods
= Thread.class.getMethods();
// loop through methods and
// print synchronized methods
for (int i = 0; i < methods.length; i++) {
// get Modifier Integer value
int mod = methods[i].getModifiers();
// check Modifier is synchronized or not
boolean result
= Modifier.isSynchronized(mod);
if (result) {
System.out.println("synchronized Method: "
+ methods[i]);
}
}
}
}
输出:
synchronized Method: public final synchronized void java.lang.Thread.join(long) throws java.lang.InterruptedException
synchronized Method: public final synchronized void java.lang.Thread.join(long, int) throws java.lang.InterruptedException
synchronized Method: public synchronized void java.lang.Thread.start()
synchronized Method: public final synchronized void java.lang.Thread.stop(java.lang.Throwable)
synchronized Method: public final synchronized void java.lang.Thread.setName(java.lang.String)
参考资料: https: Java/lang/reflect/Modifier.html#isSynchronized(int)