小编Ken*_*Ken的帖子

Java 8:对[方法]的引用含糊不清

有没有人理解为什么以下代码在Java 7及更低版本中可以正常编译,但是在Java 8中失败了.

public static void main(String[] args) throws Exception {
    put(get("hello"));
}

public static <R> R get(String d) {
    return (R)d;
}

public static void put(Object o) {
    System.err.println("Object " + o);
}

public static void put(CharSequence c) {
    System.err.println("CharSequence " + c);
}

public static void put(char[] c) {
    System.err.println("char[] " + c);
}
Run Code Online (Sandbox Code Playgroud)

get方法具有泛型返回类型.在JDK 7及更低版本中,这将编译精细,并选择带有Object参数的put方法.在JDK 8中,这无法编译,表明put方法不明确.

显然JDK 8正在跳过Object-parameter方法并找到最后两个子Object-parameter方法并抱怨它们(即如果你添加另一个put方法和其他一些参数类型,编译器将切换并抱怨新的last两种方法)

这似乎是一个错误.

java generics compiler-errors java-8

26
推荐指数
1
解决办法
1万
查看次数

GitHub企业管理功能 - 将任意用户添加到组织

如果您是站点管理员,是否可以在GitHub企业中任意添加用户到组织.我正在评估该软件,但似乎无法可靠地做到这一点.不属于组织的站点管理员无法启动组织仪表板,也无法查看哪些用户是其中的一部分,尽管他们可以查看和贡献存储库(以一种方式).我知道可以冒充非管理员用户,但你必须知道谁已经是该组织的一部分来执行此操作,这是隐藏的.必须有一个更好的方法,因为如果有一些邪恶的员工,除了自己以外的所有人.该组织实际上将成为孤儿.

谢谢

github

6
推荐指数
1
解决办法
1085
查看次数

标签 统计

compiler-errors ×1

generics ×1

github ×1

java ×1

java-8 ×1