package com.iderzheng.finalkeyword;
public final class FinalClass {
}
// Error: cannot inherit from final
class PackageClass extends FinalClass {
}
import java.lang.reflect.Modifier;
public class Main {
public static void main(String[] args) {
Runnable anonymous = new Runnable() {
@Override
public void run() {
}
};
System.out.println(Modifier.isFinal(anonymous.getClass().getModifiers()));
}
}
false
package com.iderzheng.other;
public class FinalMethods {
public static void publicStaticMethod() {
}
public final void publicFinalMethod() {
}
public static final void publicStaticFinalMethod() {
}
protected final void protectedFinalMethod() {
}
protected static final void protectedStaticFinalMethod() {
}
final void finalMethod() {
}
static final void staticFinalMethod() {
}
private static final void privateStaticFinalMethod() {
}
private final void privateFinalMethod() {
}
}
package com.iderzheng.finalkeyword;
import com.iderzheng.other.FinalMethods;
public class Methods extends FinalMethods {
public static void publicStaticMethod() {
}
// Error: cannot override
public final void publicFinalMethod() {
}
// Error: cannot override
public static final void publicStaticFinalMethod() {
}
// Error: cannot override
protected final void protectedFinalMethod() {
}
// Error: cannot override
protected static final void protectedStaticFinalMethod() {
}
final void finalMethod() {
}
static final void staticFinalMethod() {
}
private static final void privateStaticFinalMethod() {
}
private final void privateFinalMethod() {
}
}
public String method(final boolean finalParam) {
// Error: final parameter finalParam may not be assigned
// finalParam = true;
final Object finalLocal = finalParam ? new Object() : null;
final int finalVar;
if (finalLocal != null) {
finalVar = 21;
} else {
finalVar = 7;
}
// Error: variable finalVar might already have been assigned
// finalVar = 80;
final String finalRet;
switch (finalVar) {
case 21:
finalRet = "me";
break;
case 7:
finalRet = "she";
break;
default:
finalRet = null;
}
return finalRet;
}
public String method(final Object finalParam) {
final int finalVar;
if (finalParam != null) {
finalVar = 21;
}
final String finalRet;
// Error: variable finalVar might not have been initialized
switch (finalVar) {
case 21:
finalRet = "me";
break;
case 7:
finalRet = "she";
break;
}
// Error: variable finalRet might not have been initialized
return finalRet;
}
public Runnable method(String string) {
int integer = 12;
return new Runnable() {
@Override
public void run() {
// ERROR: needs to be declared final
System.out.println(string);
// ERROR: needs to be declared final
System.out.println(integer);
}
};
}
package com.iderzheng.finalkeyword;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;
public class StaticFinalFields {
static final int STATIC_FINAL_INIT_INLINE = 7;
static final Set<Integer> STATIC_FINAL_INIT_STATIC_BLOCK;
/** Static Block **/
static {
if (System.currentTimeMillis() % 2 == 0) {
STATIC_FINAL_INIT_STATIC_BLOCK = new HashSet<>();
} else {
STATIC_FINAL_INIT_STATIC_BLOCK = new LinkedHashSet<>();
}
STATIC_FINAL_INIT_STATIC_BLOCK.add(7);
STATIC_FINAL_INIT_STATIC_BLOCK.add(21);
}
}
package com.iderzheng.finalkeyword;
public class FinalFields {
final long FINAL_INIT_INLINE = System.currentTimeMillis();
final long FINAL_INIT_BLOCK;
final long FINAL_INIT_CONSTRUCTOR;
/** Initial Block **/
{
FINAL_INIT_BLOCK = System.nanoTime();
}
FinalFields() {
this(217);
}
FinalFields(boolean bool) {
FINAL_INIT_CONSTRUCTOR = 721;
}
FinalFields(long init) {
FINAL_INIT_CONSTRUCTOR = init;
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有