小编Mic*_*ael的帖子

Java ArrayList和HashMap即时

有人可以提供一个创建Java ArrayList和动态的例子HashMap吗?那么在类实例化中实际提供数组/散列的种子数据,而不是做一个add()或者put()

举一个例子,类似于PHP的例子:

$array = array (3, 1, 2);
$assoc_array = array( 'key' => 'value' );
Run Code Online (Sandbox Code Playgroud)

java collections

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

为什么Arrays.asList(...).toArray().getClass()在JDK 8和9中给出不同的结果?

为什么以下条件返回trueJDK 8,而它返回falseJDK 9?

String[].class == Arrays.asList("a", "b").toArray().getClass()
Run Code Online (Sandbox Code Playgroud)

java java-8 java-9

44
推荐指数
2
解决办法
1434
查看次数

如何用Java表示范围?

假设一个整数应该在以下范围内: [0...2147483647]

我想检查整数变量是否在此范围内.我知道它可以通过简单的if-else语句来完成,但有没有更有效的方法来检查它是否在范围内?

我宁愿不这样做:

if (foo >= 0 && foo <= 2147483647) 
{
    // do something
}
Run Code Online (Sandbox Code Playgroud)

java

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

Java为什么接口扩展接口

我想知道在什么情况下我们从接口扩展接口?因为,例如

interface A{
    public void method1();
}
interface B extends A{
    public void method2();
}
class C implements B{
    @Override public void method1(){}
    @Override public void method2(){}
}
Run Code Online (Sandbox Code Playgroud)

不等于

interface A{
    public void method1();
}
interface B{
    public void method2();     
}
class C implements A, B{
    @Override public void method1(){}
    @Override public void method2(){}
}
Run Code Online (Sandbox Code Playgroud)

背后有什么重大原因吗?

java inheritance extends interface

36
推荐指数
4
解决办法
3万
查看次数

为什么Java 8中的接口允许使用main方法?

为什么允许接口main在Java 8中使用方法?

如下面的代码所述,它工作正常并正确产生输出.

public interface Temp {
    public static void main(String args[]){
         System.out.println("Hello");
    }
}
Run Code Online (Sandbox Code Playgroud)

目前它表现得像一个类,我interface用main方法执行.

我们为什么需要这个?

java java-8

32
推荐指数
3
解决办法
3981
查看次数

Collections.unmodifiableSet()在Java中做了什么?

我可以看到Collections.unmodifiableSet返回给定集合的不可修改的视图但我不明白为什么我们不能只使用final修饰符来完成此操作.

在我的理解中,final声明一个常量:无法修改的东西.因此,如果将一个集合声明为常量,则无法修改它:无法从集合中删除任何内容,也无法添加任何内容.

我们为什么需要Collections.unmodifiableSet

java final unmodifiable

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

为什么shared_from_this从技术角度来看不能在构造函数中使用?

在第91页的"C++标准库 "一书中,我读过以下内容shared_from_this():

问题是,shared_ptr卖场本身的私有成员 Person的基类enable_shared_from_this<>,在最后的人的建设.

该书的相关代码片段是:

class Person : public std::enable_shared_from_this<Person> {
   ...
};
Run Code Online (Sandbox Code Playgroud)

我不明白这里有两件事:

  1. 这是谁shared_ptr存储自己?
  2. 如何在建筑结束时将自己存放在任何地方Person?我认为构造Person最终是由我编写的构造函数的最后一个语句.

我知道还有weak_ptr尚未初始化的内容.

编辑:感谢Angew!shared_from_this将工作后,才第一次shared_ptrPerson创建.这shared_ptr将检查Person类是否继承enable_shared_from_this,如果是,则初始化其内部weak_ptr.

c++ constructor shared-ptr

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

ADB:规范中缺少端口

我最近已升级到Android SDK平台工具版本28.0.2。版本信息:

$ adb version
Android Debug Bridge version 1.0.40
Version 28.0.2-5303910
Run Code Online (Sandbox Code Playgroud)

使用adb connect命令时,我现在得到以下错误:

$ adb connect 192.168.1.20
missing port in specification: tcp:192.168.1.20
Run Code Online (Sandbox Code Playgroud)

默认情况下,ADB以前使用TCP端口5555连接到设备。我仍然可以通过指定以下端口号连接到我的设备:

$ adb connect 192.168.1.20:5555
connected to 192.168.1.20:5555
Run Code Online (Sandbox Code Playgroud)

但是,这对我来说是一个小麻烦,因为我习惯于仅输入IP地址。有没有办法告诉此版本的ADB默认使用TCP端口5555?

android adb android-sdk-tools

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

Android Studio无法解析org.junit

我在Android Studio 1.2.2中使用JUnit测试.测试没有问题.唯一令我困惑的是Android Studio无法解析实际的org.junit包.显然它确实解决了它,否则测试不会运行.但是导入和注释在Android Studio中标记为红色,如此处所示.这是Android Studio中的错误吗?我尝试重建应用程序并重新启动Android Studio,但这并不能解决问题.

import org.junit.Test;

import static org.junit.Assert.*; // cannot resolve symbol 'junit'

public class CanadaTest
{
    @Test
    public void testCountryName() throws Exception
    {
        int x = 0;
        x++;
    }
}
Run Code Online (Sandbox Code Playgroud)

junit android android-studio

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

纯方法必须是静态的吗?

我现在正在编写一本教科书,它将纯方法定义为:

"一种静态方法,仅取决于其参数而不依赖于其他数据"

如果一个实例方法不是静态的(只要它不修改参数并且没有像打印那样的"副作用"),那么它是不可能的?

我知道纯方法是纯粹的,返回值只取决于参数而不依赖于任何其他状态,所以可能调用实例方法意味着从调用方法的对象中获取的变量不算作参数但作为另一个"状态"?

除此之外,我无法想到为什么非静态方法不能成为纯方法.

这是一个例子:

public class Rational {

    private int numer;
    private int denom;

    public Rational() {
        this.numer = 0;
        this.denom = 1;
    }

    public Rational(int numer, int denom) {
        this.numer = numer;
        this.denom = denom;
    }
}
Run Code Online (Sandbox Code Playgroud)

以上定义了一个Rational

然后,您可以在Rational类中编写一个方法,该方法通过下面的"方法一"或"方法二" 返回一个Rational对象double.

方法一:

public double toDouble() {
    double x = this.numer;
    double y = this.denom;
    double fprat = x / y;
    return fprat;
}   
Run Code Online (Sandbox Code Playgroud)

方法二:

public static double toDouble(Rational …
Run Code Online (Sandbox Code Playgroud)

java semantics

28
推荐指数
4
解决办法
3562
查看次数