相关疑难解决方法(0)

C#到Java - 字典?

在Java中是否可以使用已经在其中声明的项来创建一个Dictionary?就像下面的C#代码一样:

   Dictionary<string, int> d = new Dictionary<string, int>()
    {
        {"cat", 2},
        {"dog", 1},
        {"llama", 0},
        {"iguana", -1}
    };
Run Code Online (Sandbox Code Playgroud)

我该怎么做以及我使用什么类型的?我读过字典已经过时了.

c# java dictionary map new-operator

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

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万
查看次数

使用Anonymous类有什么危害?

在阅读这个问题的答案时出现了这个问题 - 如何在java中加入两个列表.这个答案给出了解决方案

List<String> newList = new ArrayList<String>() { { addAll(listOne); addAll(listTwo); } };
Run Code Online (Sandbox Code Playgroud)

阅读评论,用户说它是邪恶和丑陋的,不应该用于生产.

我想知道使用它有什么害处?为什么在生产中使用它是丑陋的,邪恶的还是坏的?


注意:被问到这是一个问题因为,引用的帖子太旧了(2008年),回答者几个月后就离开了.

java anonymous-class

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

直接在java中初始化对象

是否可以直接初始化对象,就像我们在java中使用String类一样:

如:

String str="something...";
Run Code Online (Sandbox Code Playgroud)

我想为我的自定义类做同样的事情:

class MyData{
public String name;
public int age;
}
Run Code Online (Sandbox Code Playgroud)

是可能的

MyClass obj1={"name",24};
Run Code Online (Sandbox Code Playgroud)

要么

MyClass obj1="name",24;
Run Code Online (Sandbox Code Playgroud)

初始化对象?或者它是如何可能的!

java initialization object

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

如何在一行中初始化静态ArrayList <myclass>

我有MyClass

MyClass(String, String, int);
Run Code Online (Sandbox Code Playgroud)

我知道如何以这种方式添加到ArrayList:

MyClass.name = "Name";
MyClass.address = "adress";adress
MyClass.age = age;
Run Code Online (Sandbox Code Playgroud)

然后添加到arrayList,如:

list.add(MyClass);
Run Code Online (Sandbox Code Playgroud)

但现在我有很多以静态形式存在的对象MyClass,我想添加

ArrayList<MyClass> list = new ArrayList<MyClass>({"Name","Address", age};.....);
Run Code Online (Sandbox Code Playgroud)

我可以这样做吗 谢谢,无论如何

java

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

有什么好的模式/技术可以减少Java的冗长

可能有点烦人的事情之一是表达概念所需的代码量.我相信"代码更少更好"的理念,而且我想知道如何编写Java而不会如此令人沮丧地冗长.最近,我阅读了Java问题的隐藏特性,并介绍了使用双括号初始化来模拟List或Map文字.当然,使用这种方法有一些缺点,但它确实允许你用明显更少的字符做某些事情(如果你正确格式化),使代码更清晰,更清晰.我想知道是否没有其他聪明的技巧和鲜为人知的语言功能可以使我的代码更简洁.

我希望通过对该技术的解释,更换的更冗长的方式以及使用该技术的任何潜在缺点来看到答案.

java design-patterns coding-style

21
推荐指数
3
解决办法
5090
查看次数

理解此警告:可序列化类不声明静态最终serialVersionUID

我有一些静态初始化代码:

someMethodThatTakesAHashMap(new HashMap<K, V>() {
{
  put("a","value-a"); 
  put("c","value-c");}
});
Run Code Online (Sandbox Code Playgroud)

出于某种原因,我收到了Eclipse的警告:serializable类没有声明静态的最终serialVersionUID.

这是抱怨匿名课吗?我能做些什么,或者我应该压制它.

java generics instance-initializers

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

如何在Java 7中使用集合文字?

我试过以下一行:

Map<Character, Color> map={new Character('r'):Color.red,new Character('b'):Color.black};
Run Code Online (Sandbox Code Playgroud)

但Netbeans 7拒绝这一点,并显示错误消息'{' expected, ';' expected.

我将Source/Binary格式设置为'JDK 7',将平台设置为'JDK 1.7',还有什么我需要做的吗?

java collections

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

Java 8双花括号初始化和名称冲突

以下类有一个名为的内部类Entry.此代码不会在Java 8中编译,因为编译器假定Entry双花括号初始值设定项中的引用是类型Map.Entry而不是Scope.Entry.这段代码在JDK的先前版本(至少6和7)中编译,但在JDK 8中被破坏.我的问题是"为什么?" Map.Entry未在此类中导入,因此编译器没有理由假设该值是类型Map.Entry.是否有一些隐含的范围被引入或匿名类的东西?

错误:

scope/Scope.java:23: error: incompatible types: scope.Scope.Entry cannot be converted to java.util.Map.Entry for (final Entry entry : entries) {
scope/Scope.java:22: error: cannot find symbol put(entry.getName(), entry);
Run Code Online (Sandbox Code Playgroud)

示例代码:

package scope;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;

public class Scope {

    public static class Entry<T> {
        public String getName() {
            return "Scope";
        }
    }

    public static void main(String[] args) {
        final Set<Entry> entries = new HashSet<>();

        new HashMap<String, …
Run Code Online (Sandbox Code Playgroud)

java inner-classes shadowing java-8

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

用Java创建预填充集

在Java中,如何创建在构造时填充的最终Set?我想做类似以下的事情:

static final Set<Integer> NECESSARY_PERMISSIONS 
    = new HashSet<Integer>([1,2,3,6]);
Run Code Online (Sandbox Code Playgroud)

但我不知道Java中的正确语法.

java initialization declaration set

18
推荐指数
5
解决办法
4万
查看次数