小编bil*_*.cn的帖子

抛出字符串而不是错误

既然我们可以throw在Javascript中使用关键字抛出任何内容,那么我们不能直接抛出错误消息字符串吗?

有谁知道这有什么捕获?

让我为此添加一些背景:很多时候,在JavaScript世界中,人们依赖于参数检查而不是使用try-catch机制,所以只抛出致命错误才有意义throw.仍然,为了能够捕获一些系统错误,我必须为我自己的错误使用不同的类,而不是创建Error的子类,我想我应该只使用String.

javascript

64
推荐指数
4
解决办法
2万
查看次数

JSDoc:如何记录父"类"的"选项"对象文字?

我正在使用jQuery的$.widget()基类"类",它提供了一种option()方法.由于该方法不在我的代码中,因此我无法记录参数.

我试图将jsDoc放在默认选项文字中的字段上,但它们根本就没有被选中.然后我尝试在同一个对象文字上使用@class@lends标签,但这可能会让人很困惑,因为对象文字实际上并不是一个类.

我尝试过的另一种方法是@param options.field description在构造函数的jsDoc中添加类似的东西.但是,这样做的缺点是将文档与代码分开.此外,构造函数实际上没有调用的参数,options因为它全部由jQuery处理.

你是如何Javascript专家处理这个?是否应该提出新标签?

javascript jsdoc

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

对Object.clone()的功能引用无法编译

编译

import java.util.concurrent.Callable;

class Ideone
{
    Callable<?> x = super::clone;
}
Run Code Online (Sandbox Code Playgroud)

使用Oracle JDK提供:

Main.java:6: error: incompatible types: invalid method reference
    Callable<?> x = super::clone;
                    ^
    clone() has protected access in Object
Run Code Online (Sandbox Code Playgroud)

这没有意义,因为类应该能够访问其父级的受保护方法.这个表达式在Eclipse的编译器中运行良好.

() -> super.clone()编译好......

这是一个错误吗?

java lambda compiler-errors java-8

18
推荐指数
1
解决办法
335
查看次数

为什么Class.getSimpleName()没有缓存?

如果你看一下Sun的实现的源代码Class.getSimpleName(),你会发现它似乎每次调用它时都会返回一个新的String实例.但是,Class类中的许多其他功能都是缓存的.

由于简单的名称计算似乎并不容易,并且JavaDoc中没有任何内容表明它必须每次返回一个新实例,因此它应该是缓存的一个很好的候选者.我想知道为什么这个没有缓存有任何设计原因?

我问,因为许多框架一直使用简单的名称,这是一个很容易缓存的东西.

java

15
推荐指数
1
解决办法
2678
查看次数

在javascript的内置函数中进行循环检测

我从Chrome开发人员工具的控制台获得了以下跟踪:

> a = [1]
[1]
> b = [2, a]
[2, Array[1]]
> a.push(b)
2
> a.toString()
"1,2,"
Run Code Online (Sandbox Code Playgroud)

似乎toString()智能地跳过了对象图的递归部分.这是在某处记录的标准行为吗?

javascript

12
推荐指数
1
解决办法
174
查看次数

我可以在Mercurial中合并两个文件的历史记录吗?

我需要将两个类的功能合并为一个,但我想知道我可以将他们的更改历史记录合并吗?

这两个类都包含许多以前的更改,因此我希望将更改历史记录保存在一个位置以供参考.我可以在组合类中发表评论,但在IDE中,获取已删除文件的历史记录并不容易.

mercurial

11
推荐指数
1
解决办法
1515
查看次数

Java 8:将lambda转换为包含clousure的Method实例

(这很难搜索,因为结果都是关于"方法参考")

我想获得一个Methodlambda表达式的实例,以便与基于遗留反射的API一起使用.应该包含clousure,因此调用thatMethod.invoke(null, ...)应该与调用lambda具有相同的效果.

我看过MethodHandles.Lookup,但它似乎只与逆向变换有关.但我想这种bind方法可能有助于包括clousure?

编辑:

说我有lambda experssion:

Function<String, String> sayHello = name -> "Hello, " + name;
Run Code Online (Sandbox Code Playgroud)

我有一个具有API 的遗留框架(SpEL)

registerFunction(String name, Method method)
Run Code Online (Sandbox Code Playgroud)

这将调用Method没有this参数的给定(即假定方法是静态的).所以我需要得到一个Method包含lambda逻辑+ clousure数据的特殊实例.

reflection lambda java-8

11
推荐指数
2
解决办法
4357
查看次数

Eclipse可以在不同的行上格式化逗号分隔的语句(var a = 1,b = 2;)吗?

我正在使用Eclipse JSDT,默认格式设置改变了类似的东西

var a = 1,
    b = 2;
Run Code Online (Sandbox Code Playgroud)

在一条丑陋的线上.

JSLint推荐格式化之前的样式,所以我想知道可以将Eclipse设置为以这种方式格式化吗?现有的格式化程序设置不提供对它看起来的逗号语句的控制.

javascript eclipse jsdt

9
推荐指数
1
解决办法
862
查看次数

(非静态)内部类的构造方法引用?

StaticClass::new给定外部类实例的内部类是否有相同的东西?

编辑:

即如果我有

class Outer {
    class Inner {
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以Outer o = new Outer(); Inner i = o.new Inner()用旧Java 做.如何表达o.new Inner()as函数引用.

java lambda java-8 java-stream

9
推荐指数
2
解决办法
1462
查看次数

匹配捕获的类型检查是否与上限绑定?

创建一个类似的

public class Play {
    public static void main(String[] args) throws Exception {
        outer(Integer.class, inner("abc"));
    }

    static <C> void outer(Class<C> c, List<? super C> s){
    }

    static <C> List<C> inner(C c) {
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

它在Java 8中编译!(在Eclipse 4.5和JDK1.8_25中都有)https://ideone.com/Q9JLHP

在Eclipse中,所有的边界都被正确地推断出来,但是如何通过参数来outer捕获?Supplier<? super Integer>Supplier<String>

编辑:澄清这是Java 8特定的,并使示例不那么混乱.

java typechecking java-8

9
推荐指数
1
解决办法
99
查看次数