小编Per*_*ror的帖子

使用和声明通用List <T>

所以我在Java工作,我想声明一个通用的List.

所以我到目前为止所做的是 List<T> list = new ArrayList<T>();

但现在我想添加一个元素.我怎么做?通用元素是什么样的?

我尝试过像List.add("x")这样的东西,看看我是否可以添加一个字符串,但这不起作用.

(我没有声明a的原因List<String>是因为我必须将此List传递给另一个仅List<T>作为参数的函数.

java generics list arraylist object

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

在类中实现超级和子接口(类A实现SuperInterface,SubInterface)

interface A {

    public void doSomething();
}

interface B extends A {

    public void doSomethingElse();
}

public class AClass implements A, B {

    public void doSomething() {}

    public void doSomethingElse() {}

}
Run Code Online (Sandbox Code Playgroud)

为什么Java允许这样的声明?通过实现SubInterface(B)可以实现同样的事情,实现两个接口的用途是什么?

java interface

14
推荐指数
1
解决办法
3790
查看次数

为什么这段代码不会抛出NullPointerException

我刚刚与我的朋友讨论了使用类名调用静态方法,并尝试了这个代码并期望它在运行时抛出NPE.但事实证明它是dint.我只是想了解执行顺序.

public class One {

    public static void method() {
        System.out.println("in static one");
    }
}

public class Two {

    static One o;

    public static void main(String[] args) {
        o.method(); // expected NPE here, as o is null
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道静态方法应该用它们的类名调用,我甚至知道当我们用实例调用静态方法时IDE会给出编译器警告.但我们也可以通过创建一个实例来调用它们,但是,我从来没有在这里创建过一个实例,o应该得到它的默认值null,因此调用o.method()应该在运行时抛出一个NPE,但事实并非如此.你们能否详细说明这段代码中的执行顺序.

java static static-methods classloader

12
推荐指数
2
解决办法
1712
查看次数

如何终止视图范围内的bean中的线程?

在我们的应用程序中,当用户单击commandlink时,会生成一个弹出窗口.此单击将传递一个id进行处理.

我的托管bean是视图编写的,我正在创建一个线程来完成一些任务.

在用户点击链接的情况下,生成弹出窗口并且线程已开始执行作业,假设用户关闭弹出窗口并尝试单击此次提供不同ID的链接.我的问题是之前启动的线程没有被破坏.我仍然可以获得最新的id详细信息作为响应,但前一个线程仍然执行作业.

我想知道是否有办法在新请求上终止前一个实例线程.我知道我可以使用sessionscoped来实现这一点,但弹出窗口正在同一个会话中打开.

java multithreading jsf-2

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

带有get/remove方法的ArrayList <Integer>

当我在Java中使用ArrayList时,有一些我不理解的东西.这是我的初始化代码:

 ArrayList<Integer> list = new ArrayList <Integer> ();
list.add (0);
list.add (1);
Run Code Online (Sandbox Code Playgroud)

有时我需要通过索引删除一个对象:

list.remove (0) // delete the object in the first box
Run Code Online (Sandbox Code Playgroud)

但有时我想通过其内容删除一个对象:

list.remove (0) // delete the object HAS Which value of 0
Run Code Online (Sandbox Code Playgroud)

这段代码很模糊.为了澄清我想在代码中做什么,我指定这样的类型:

list.remove ((Object) 0) // delete the object which has a value of 0
Run Code Online (Sandbox Code Playgroud)

如果我不AC,唯一知道调用哪些方法的方法是将鼠标指针放在方法上看:java.util.ArrayList.remove boolean(Object object)

Java但它如何产生差异?是否有方法指针?是否有一种不那么模糊的方式来做到这一点?

非常感谢,对不起我的英语.

PS:我应该说我最终使用了SparseIntArray,但我很好奇

java android integer list arraylist

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

Java家庭作业.我帮助理解为什么我的代码会编译但在编译器中留下关于数组问题的注释?

注意:ArrayOperation.java使用未经检查或不安全的操作.注意:使用-Xlint重新编译:取消选中以获取详细信息.

public class ArrayOperation{
public static void sort(Comparable[] c){
    for (int i=1;i<c.length;i++){
    Comparable key = c[i];
    int p = i;
    while (p>0 && key.compareTo(c[p-1])<0){
        c[p]=c[p-1];
        p--;
    }
    c[p] = key;
    }
}
Run Code Online (Sandbox Code Playgroud)

}

java

5
推荐指数
1
解决办法
124
查看次数

java正则表达式匹配每个组以特定字符串开头

我有一个字符串a1wwa1xxa1yya1zz.

我想让每个小组以a1开头,直到下一个a1被排除在外.(在我的例子,我应该是:a1ww,a1xx,a1yya1zz

如果我使用:

Matcher m = Pattern.compile("(a1.*?)a1").matcher("a1wwa1xxa1yya1zz");
while(m.find()) {
  String myGroup = m.group(1);
}
Run Code Online (Sandbox Code Playgroud)

myGroup每两组捕获1组.
所以在我的例子中,我只能捕获a1wwa1yy.

任何人都有一个好主意?

java regex

5
推荐指数
1
解决办法
266
查看次数

StringBuilder将null附加为"null"

怎么会?

    StringBuilder sb = new StringBuilder();

    sb.append("Hello");
    sb.append((String)null);
    sb.append(" World!");
    Log.d("Test", sb.toString());
Run Code Online (Sandbox Code Playgroud)

产生

06-25 18:24:24.354:D/Test(20740):Hellonull World!

我希望附加一个null字符串根本不会附加!!
顺便说一句,演员String是必要的,因为StringBuilder.append()有很多重载版本.

我在这里简化了我的代码,在我的代码中得到了一个返回字符串的方法

public String getString() { ... }
...
sb.append(getString());
...
Run Code Online (Sandbox Code Playgroud)

getString()有时回归null; 现在我必须测试它,如果我想使用StringBuilder!!!!

此外,让我们在这里澄清一下我的问题:如何StringBuilder.append()以优雅的方式接受空字符串,而不是将其转换为文字字符串"null".
优雅,我的意思是我不想得到字符串,测试它是否null只是然后追加它.我正在寻找一个优雅的oneliner.

java stringbuilder android

5
推荐指数
2
解决办法
8004
查看次数

如何在不损失Java精度的情况下将String转换为Double?

试过如下

String d=new String("12.00");
Double dble =new Double(d.valueOf(d));
System.out.println(dble);
Run Code Online (Sandbox Code Playgroud)

输出:12.0

但我希望得到12.00精度

请不要在字符串类中使用format()方法让我知道正确的方法

java

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

替换所有出现的某些字符并获得所有变化

我有一个单词,我需要用星号替换某个字符,但我需要从这个单词中获取所有替换的变体.例如.我想在星号中用星号替换字符'e':

String word = telephone;
Run Code Online (Sandbox Code Playgroud)

但要获得此列表:

List of words = [t*lephone, tel*phone, telephon*, t*l*phone, t*lephon*, tel*phon*, t*l*phon*];
Run Code Online (Sandbox Code Playgroud)

在Java中有快速的方法吗?

java string replace variations

4
推荐指数
1
解决办法
279
查看次数