小编gif*_*pif的帖子

接口中定义的方法的"默认"实现是什么?

在Collection Interface中,我找到了一个removeIf()包含其实现的名为的方法.

default boolean removeIf(Predicate<? super E> filter) {
    Objects.requireNonNull(filter);  
    boolean removed = false;  
    final Iterator<E> each = iterator();   
    while (each.hasNext()) {  
        if (filter.test(each.next())) {  
            each.remove();  
            removed = true;  
        }  
    }  
    return removed;  
}  
Run Code Online (Sandbox Code Playgroud)

我想知道是否有任何方法可以在接口中定义方法体?
什么是default关键字,它是如何工作的?

java interface java-8

90
推荐指数
3
解决办法
5万
查看次数

使用没有任何抽象方法的抽象类

抽象类不需要包含任何抽象方法.

除了抽象类无法实例化这一事实之外,还有其他原因使类抽象化吗?

java abstract-class abstract

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

静态,Java是按值传递的.那为什么我的程序显示输出?

首先抱歉这个问题.这是一个非常古老的话题.
是的,我做了很多搜索,java是通过值传递的.
但是通过我的程序显示出来了.我不明白为什么?
我的节目是

class Dog{
    static String dogName;
    Dog(String name){
        dogName=name;
    }
    public void setName(String newName){
        dogName=newName;
    }
    public String getName(){
        return dogName;
    }
}
class JavaIsPassByValue{
    public static void main(String arr[]){
        Dog dog1=new Dog("OldDog");
        new JavaIsPassByValue().display(dog1);
        System.out.println(dog1.getName());
    }
    public void display(Dog d){
        System.out.println(d.getName());
        d = new Dog("NewDog");
        System.out.println(d.getName());
     }
}
Run Code Online (Sandbox Code Playgroud)

输出是,
OldDog
NewDog
NewDog
但我期待
OldDog
NewDog
OldDog
请任何人告诉我我错在哪里.

java pass-by-value

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

当我尝试在驱动器中搜索时,程序抛出NullPointerException?

我写了一个程序来查找文件或目录.
它正常工作时,我试图在搜索文件与 目录
例如
java FileSearch abc.txt f:\xyz
但是当我尝试搜索文件从本地驱动器比程序抛出异常
java FileSearch abc.txt f:\
后,显示所有的搜索结果将引发NullPointerException异常.

nullpointerexcepion

代码是:

import java.io.*;
class FileSearch{
static String fd;
static boolean flg=true;
public static void main(String arr[]){
    fd=arr[0];
    String path=arr[1];
    String dir[]=new File(path).list();
    new FileSearch().finder(dir,path);
    if(flg){System.out.print("File not found.");}
}
public void finder(String[] dir,String path){
    for(int i=0;i<dir.length;i++){
        if(dir[i].equals(fd)){
            System.out.println(path+"\\"+fd);
            flg=false;
        }
        if(new File(path,dir[i]).isDirectory())
            finder(new File(path,dir[i]).list(),path+"\\"+dir[i]);
    }   
}
}
Run Code Online (Sandbox Code Playgroud)

我想知道为什么抛出这个异常以及如何解决它.

java file drive nullpointerexception

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

java中使用的技术使字符串不可变?

java中使用的技术使字符串不可变?
或者我如何使我的字符串类不可变.
我只是想知道这背后的逻辑.

java string immutability

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

是否创建了许多对象降低性能?

在我的代码中,我有大约150个用户的详细信息,可以节省很多时间.

哪一个更好的方法:

将用户详细信息保存在列表或对象中;

Map<String, List<String>> users= new Map<String, List<String>>();
List<String> data = new ArrayList<String>();
data.add(Name);
data.add(address);
data.add(phone);
users.put(userID,data);
Run Code Online (Sandbox Code Playgroud)

要么

Map<String, UserData> users= new Map<String, UserData>();

public class UserData {
    Public String name;
    Public String address;
    Public String phone;
    UserData(String name,String address,String phone){
        this.name=name;
        this.address=address;
        this.phone=phone;
     }
 }  

UserData userData=new UserData("Name","ADD","123") ;
users.put(userID,userData);
Run Code Online (Sandbox Code Playgroud)

如果我可以在我的代码中使用任何其他更好的方法,请建议我.
抱歉英语不好.

java object

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

不区分大小写的子字符串搜索

我正在尝试使用来查找另一个字符串中子字符串的位置IgnoreCase
例:

String str ="aabbssddaa", str2="ab";
str.indexOf(str2);
Run Code Online (Sandbox Code Playgroud)

我想找到不区分大小写的str2的位置。表示str2 =其中任何一个“ ab”,“ Ab”,“ aB”,“ AB”
而且我只想遍历字符串一次。

java string

-1
推荐指数
1
解决办法
4476
查看次数

在java中获取命令行参数的长度时出错

我是java的新手.在这里,我尝试通过命令行参数找到长度第一个参数"arr [0]".我如何访问arr [0]的每个元素.这是我的计划.第5行引发错误.C

class LengthArr
{
    public static void main(String[] arr)
    {
        int len= arr[0].length;  //Cannot find symble
        System.out.println(arr[0] + "Have length : " + len);
    }
}
Run Code Online (Sandbox Code Playgroud)

java string command-line-arguments

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