相关疑难解决方法(0)

对象方法调用是否可以与对象实例同时完成?

我正在尝试使用java类BitSet作为自定义类的字段.我希望该类使用默认的BitSet并设置所有位.

import java.util.BitSet;

public class MyClass {
    private BitSet mask;

    public MyClass() {
        this(new BitSet(4));
        // want to set all bits first
        // something like 
        // this( new BitSet(4).set(0,3) );
    }

    public MyClass(BitSet mask) {
        this.mask = mask;
    }    
}
Run Code Online (Sandbox Code Playgroud)

默认情况下,BitSet构造函数取消设置所有位.所以在我将它作为匿名对象发送之前,我想调用set(int, int)方法来设置所有位.我知道我可以简单地将字段初始化mask为new BitSet,然后set(int, int)从那里调用方法.

但是,一般来说我想知道在对象实例化时是否可以访问实例方法?

java instantiation this

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

使用混合数据类型将数据结构初始化为常量值

有没有办法在Java中将数据结构初始化为常量值?我搜索了高低,找不到任何这样的技术.我特别想要初始化一个包含混合数据类型的类,例如String和int.

class xyz {
      String a;
      int    b;
}

static final xyz example1 = { "string value", 42 };    // This doesn't work.

static final xyz[] example2 = { { "value a", 42 }, { "value b", 43 } };  // this also doesn't work
Run Code Online (Sandbox Code Playgroud)

我可以初始化String的数组,甚至是String的二维数组,但由于某种原因,我无法初始化记录结构或记录结构数组.我在Delphi中经常这样做,发现没有这个功能很难生存.

好吧,我已经编程了大约40年,所以我不是一个新手.我需要知道这样的事情是否可行.我确实希望嵌入在我的应用程序中的常量数据,而不是从文件中读入,并使用赋值语句来设置数据类型,从而无法将它们声明为常量(最终).

感谢您的任何建议或意见.我真的想找到一个很好的解决方案,因为我有很多Pascal代码转换为Java,我不想重新设计所有的数据结构.

java

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

Java在C#中初始化类,就像在C#中一样

我是Java的基础,因为我是全职的C#开发人员,但我需要在Android中制作一些私人项目.

在C#中我可以这样做:

public class Test
{
    public string A {get;set;}
    public OtherClass B {get;set;}
}

public OtherClass ()
{
    string Some {get;set;}
    string Again {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

现在,当我想使用类测试时,我可以执行以下代码:

var test = new Test
{
    A = "test",
    B = new OtherClass
    {
        Some = "Some",
        Again = "Again"
    }
};
Run Code Online (Sandbox Code Playgroud)

感谢现在我已经以明确的方式初始化了测试.

当我想在Java中执行此操作时,我必须使代码如下:

public class Test
{
    private string A;
    public string GetA()
    {
        return A;
    }
    public void SetA(string a)
    {
        A = a;
    }

    privte  OtherClass B;
    public OtherClass GetB() …
Run Code Online (Sandbox Code Playgroud)

c# java initialization class code-cleanup

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

我可以用文字声明并初始化 java 中的映射吗?

是否可以声明并初始化Hashtableor Map,这样我们就不必在两个不同的步骤中声明和初始化?

// declare first
Hashtable<String, Integer> numbers = new Hashtable<String, Integer>(3);

// then initialize
numbers.put("one", 1);
numbers.put("two", 2);
numbers.put("three", 3);
Run Code Online (Sandbox Code Playgroud)

例如,在 ruby​​ 和 javascript 中,有文字来定义它们:

numbers = {
  one: 1,
  two: 2,
  three: 3,
}
Run Code Online (Sandbox Code Playgroud)

java dictionary initialization

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

如何创建新列表并在单个语句中添加值

我想要实现的目标可能毫无意义,但我想找到答案来满足我的好奇心。

我正在尝试创建一个有效的语句,该语句将基于另一个列表创建一个新列表,并在末尾添加一个新值。

我是 lambda 表达式的新手,我不确定应该使用哪种列表。

该方法看起来像这样:

private List<Integer> conjoin(List<Integer> list, Integer newValue){
    return new ArrayList<Integer>(list).stream()
            .map(value -> list.indexOf(value)==(list.size()-1) ? 
                    Arrays.asList(value, newValue) : 
                    Arrays.asList(value))
            .flatMap(Collection::stream)
            .collect(Collectors.toList());        
}
Run Code Online (Sandbox Code Playgroud)

但更加整洁和高效。

或者是否有一个内置方法可以执行我不知道的相同操作?

java lambda functional-programming

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

Java - 在重载的构造函数调用中创建HashMap

我有一个非常简单的问题但到目前为止找不到任何东西.

我正在尝试创建两个类构造函数.
第一个构造函数获取2个字符串和一个HashMap并初始化类变量.

public Foo(String a, String b, HashMap<String, String> c) {
    this.a = a;
    this.b = b;
    this.c = c;
}
Run Code Online (Sandbox Code Playgroud)

第二个构造函数应该只获取2个字符串并创建一个"默认"-HashMap.

通常你只需要this()使用默认值调用,但我找不到用a做的方法HashMap.

public Foo(String a, String b) {
    this(a, b, new HashMap<String, String>().put("x", "y").put("f","g"));
}
Run Code Online (Sandbox Code Playgroud)

Eclipse标记错误:

类型不匹配:无法转换StringHashMap<String,String>

否则this()-call不能是函数中的第一个语句.

public Foo(String a, String b) {
    HashMap<String, String> c = new HashMap<String, String>();
    c.put("x", "y");
    c.put("f", "g");
    this(a, b, c);
}
Run Code Online (Sandbox Code Playgroud)

任何想法如何解决这个问题?

最糟糕的情况我不得不复制代码,但我想知道是否没有更好的方法.

java overloading hashmap constructor-overloading

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

Java:用逗号格式化数字

我只想以“可读性强”的格式输出数字。例如,您可以将 100000 输出为 100.000,这将更具可读性。

是否有可以用于此的现有方法?

java numbers number-formatting decimalformat

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

如何给HashMap提供静态值?

我有HashMap像:

static HashMap<String,ArrayList<Media>> mediaListWithCategory=new HashMap<String,ArrayList<Media>>();
Run Code Online (Sandbox Code Playgroud)

我有价值:

January:
   -Sunday
   -Monday
Februsry:
   -Saturday
   -Sunday
   -Thursday
March:
   -Monday
   -Tuesday
   -Wednesday
Run Code Online (Sandbox Code Playgroud)

在定义哈希映射时如何静态分配这些值?

java android android-widget android-emulator android-layout

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

Set.of(E... elements) - 它使用哪个 Set 实现?它与 new HashSet&lt;&gt;() 有何关系?

我想问 - 有什么区别

Set<CurrencyType> set1 = new HashSet<>() {{
    add("a");
    add("b");
    add("c");
}}
Run Code Online (Sandbox Code Playgroud)

Set<CurrencyType> set2 = Set.of(
    "a",
    "b",
    "c"
)
Run Code Online (Sandbox Code Playgroud)

在名为 @Test 的调试模式下MySillyTest(这个名称很快就会回来),我可以看到它set1是 的一个实例MySillyTest$1,但我认为它只是一个HashSet. set2另一方面是 的一个实例ImmutableCollections$SetN。这两者之间真正的区别是什么?java.util.Set使用什么实现Set.of()?这两者之间有性能/内存使用/CPU 使用差异吗?

java collections set hashset

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

为什么这两个看似相同的对象有不同的类类型?

我有一个类User,只有两个字段:id,name

package test;

public class User {
    private Long id;
    private String name;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在Main课堂上,我尝试用两种不同的方法初始化User对象:

package test;

/**
 * @author lhuang
 */
public class Main {
    public static void main(String[] args) {
        User u = new User() {
            {
                setId(1l);
                setName("LHuang");
            }
        };

        System.out.println(u.getClass()); …
Run Code Online (Sandbox Code Playgroud)

java

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