小编arn*_*e.b的帖子

如何在不运行的情况下在Eclipse中编译Java程序?

我想在Eclipse中编译我的Java程序但不运行它.我无法理解如何做到这一点.

如何.class在不运行的情况下将Java程序编译为Eclipse中的文件?

java eclipse compilation .class-file

90
推荐指数
2
解决办法
27万
查看次数

Chrome警告"[DOM]密码表单应该在控制台中具有(可选地隐藏)用于访问的用户名字段,即使使用隐藏的用户名字段也是如此

当访问我的单页应用程序的"重置密码"路径并查看Chrome浏览器控制台时,我会收到以下警告:

[DOM]密码表单应具有(可选隐藏)用户名字段以便访问:(更多信息:goo.gl/9p2vKq)

有用的是,相关表单的html也会在下一行打印到控制台,并且非常清楚地包含一个隐藏的用户名字段:

<form data-ember-action data-ember-action-436=?"436">?
  <div class=?"form-group">
    ?<label for=?"newpasswordone">?Password?</label>?
    <input type=?"password" autocomplete=?"new-password" placeholder=?"Enter your new password" id=?"ember437" class=?"form-control ember-text-field ember-view" data-op-id=?"0">?

    <label for=?"newpasswordtwo">?Password (again)?</label>
    ?<input type=?"password" autocomplete=?"new-password" placeholder=?"Re-enter your new password" id=?"ember438" class=?"form-control ember-text-field ember-view" data-op-id=?"1">?
    <input type=?"hidden" name=?"username" autocomplete=?"username" value=?"a_b">
?  </div>?
  <button disabled type=?"submit" class=?"btn btn-default">?Reset password?</button>??
</form>?
Run Code Online (Sandbox Code Playgroud)

我尝试了一些小的变化 - 取消隐藏用户名字段,将其标记为只读,将其移到div- 而不影响警告.Chrome如何为用户名提供服务?

Chrome 63和64出现问题.

google-chrome autocomplete hidden-field password-recovery

22
推荐指数
3
解决办法
7707
查看次数

使用给定数量的空值初始化List <T>而没有循环?

可以List<T>初始化为包含给定数量的nulls,其中T是列表所属类的类型参数吗?我确定可以用循环来做,但想知道是否可以没有.

List<T> myList = new ArrayList<T>(numEls);
Run Code Online (Sandbox Code Playgroud)

创建一个给定容量的列表,但是大小为0,因此myList.get(x)对所有人都失败x,例如myList.set(numEls-1,null).

myList = Arrays.asList(new T[numEls]);
Run Code Online (Sandbox Code Playgroud)

不编译,和

 myList = (List<T>) Arrays.asList(new Object[numEls]);
Run Code Online (Sandbox Code Playgroud)

在Eclipse中编译(带有未经检查的强制转换警告),但不是用javac编译.


更新:谢谢你的答案!但是,我找到了另一个很短的解决方案,接近我上面的上一次尝试,它在eclipse和我们的自动构建系统中编译:强制转换数组,而不是列表!

myList = Arrays.asList((T[]) new Object[numEls]);
Run Code Online (Sandbox Code Playgroud)

java initialization list

17
推荐指数
2
解决办法
6865
查看次数

Java:确定函数是使用varargs还是数组调用的

有没有办法找出实际使用varargs或数组调用varargs的Java函数(或构造函数)?

说我有以下内容:

public class MyCompositeObjects {

    MyObject[] objects;

    MyCompositeObjects(MyObjects... objects) {
        this.objects = Arrays.copyOf(objects,objects.length);
        // or just: this.objects = objects; ?
    }

    // ...
}
Run Code Online (Sandbox Code Playgroud)

可以使用单个MyObject[]参数调用构造函数,该参数可能稍后更改,如果我不在构造函数中复制数组,那么这些更改也将应用于成员变量objects,对吧?但是,如果使用多个MyObjects 调用构造函数,则没有其他对数组*的引用,以便稍后在类外部进行更改,因此我可以直接分配它.我可以告诉构造函数(或者,通常是任何采用varargs的函数)如何调用它?

*nb:这是否有特定的名称?它只是一个匿名数组吗?

java variadic-functions

7
推荐指数
1
解决办法
386
查看次数

接口I不能用不同的参数实现多次:I <String>和I <String>

我在日食中遇到问题,以下四行分布在相应的四个文件中:

public interface I<T> {}

public interface ISpecial<T> extends I<T> {}

public class Base implements I<String> {}

public class Special extends Base implements ISpecial<String> {}
Run Code Online (Sandbox Code Playgroud)

Eclipse告诉我(并且只有我和其他几个人都没有将相同的,稍微复杂的项目导入他们的工作区)

The interface I cannot be implemented more than once with different arguments: I<String> and I<String>

这是因为几天前我检查并安装了Eclipse更新(我几个月没做过),并更改了"Java编译器"设置对话框中的一些"错误/警告"设置(所以我做了)不知道这些变化中的任何一个是否应该受到指责,但我已经将所有可能是"错误"的内容切换为"警告"并且问题仍然存在.)

我想巧妙地提交给Eclipse,这<String>不是一个不同的论点<String>,但不知道我是如何或是否在这里遗漏了一些东西.

更新:将JDK编译器合规性级别设置为1.5(从1.7开始)后,问题在我创建的测试项目(使用上面的代码)中消失了,但在最初发生的更复杂的项目中却没有.在前者中,在将合规性级别再次设置为1.6或1.7之后问题没有回来,所以现在我自己再也无法用最小的例子重现问题,而没有解决原始问题本身.

java eclipse generics

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

条件断点错误 - 类型不实现选择器最大值和签名

我正在尝试调试我的一段代码,其中Integer地图中的()值有时会出乎意料地高.

当我这样做

Collection<Integer> vals = newState.values();
int max = Collections.max(vals);
return newState; // breakpoint here
Run Code Online (Sandbox Code Playgroud)

我可以在return语句的行中设置条件断点,条件涉及max,例如max > 10.当我省略中间行并设置断点条件时Collections.max(vals) > 10,我在调试模式下得到一个运行时异常.

"原因:类型没有实现选择器最大值和签名(Ljava/util/Collection;)Ljava/lang/Comparable;"

我可以通过上面的代码片段得到我想要的东西,但我仍然想知道这里发生了什么.猜测可能是Collections方法未能意识到Integer确实具有可比性,我尝试了Collections.<Integer>max(v)一些(语法错误)变化,但没有成功.

java eclipse

3
推荐指数
1
解决办法
4874
查看次数