相关疑难解决方法(0)

java unchecked cast

我在Java中有一个比较器类来比较Map条目:

public class ScoreComp implements Comparator<Object> {

    public int compare(Object o1, Object o2) {

        Entry<Integer, Double> m1 = null;
        Entry<Integer, Double> m2 = null;

        try {
            m1 = (Map.Entry<Integer, Double>)o1;
            m2 = (Map.Entry<Integer, Double>)o2;
        } catch (ClassCastException ex){
            ex.printStackTrace();
        }

        Double x = m1.getValue();
        Double y = m2.getValue();
        if (x < y)
            return -1;
        else if (x == y)
            return 0;
        else
            return 1;        
     }

}
Run Code Online (Sandbox Code Playgroud)

当我编译这个程序时,我得到以下内容:

warning: [unchecked] unchecked cast
found   : java.lang.Object
required: java.util.Map.Entry<java.lang.Integer,java.lang.Double>
            m1 = (Map.Entry<Integer, Double>)o1; …
Run Code Online (Sandbox Code Playgroud)

java generics compiler-warnings

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

确保对象实现Comparable

我有一个小问题,并想知道如何解决它.我有一个泛型类Tuple<A,B>,现在我想根据A和B对它们的元组进行排序.它应该如下所示:

未排序:

(1,5)
(2,8)
(6,8)
(1,4)
(2,4)

排序方式:

(1,4)
(1,5)
(2,4)
(2,8)
(6,8)

出于这个原因,我想到public int compareTo(Tuple<A, B> other)在Tuple类中实现一个通用的compare方法().唯一的问题是你可以为类参数化的所有对象(例如A = Integer,B = String)也必须实现compareTo方法,以便整个过程能够工作.

有没有办法确保元组可以容纳的所有对象实现Comparable接口?

或者有没有其他建议如何解决这个问题?

谢谢

java generics compare

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

使用复杂密钥创建Google Guava缓存

我正在尝试创建一个具有"Pair"作为其键的Cache,并从帖子中获取该Pair类.

我尝试着:

CacheLoader<Pair<String, String>, String> loader =
    new CacheLoader<Pair<String, String>, String>() {
       public String load(Pair<String, String> key) {
           return GetRatingIdentityByShortNameLoader(key.first, key.second);
       }
    };

_ratingIdCache = CacheBuilder.newBuilder()
    .concurrencyLevel(a_conclevel.intValue())
    .maximumSize(a_maxsize.intValue())
    .expireAfterAccess(a_maxage.intValue(), TimeUnit.MINUTES)
    .build(loader);
Run Code Online (Sandbox Code Playgroud)

哪个无法在Eclipse中编译(helios,java 1.6):

CacheBuilder类型中的方法构建(CacheLoader)不适用于参数(new CacheLoader,String>(){})

有没有人对如何解决这个问题有任何建议?我需要有一个存储"ID"的缓存的目标,其中"主键"是"评级机构"+"评级".

番石榴10.0.1

caching guava

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

Java中的无序对

我需要一个Java 泛型类来表示任何类型的无序对.同时我看到两个解决方案:

  • HashSet 存储对元素
  • 一个Pair带有覆盖的类hashCodeequals(制作Pair(a, b)Pair(b, a)等于).

是否有意义?你会建议什么?

java data-structures

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

ExecutorService - 销毁上下文时无法从ServletContextListener中停止Thread

ThreadServletContextListener初始化上下文开始,并在上下文被销毁时尝试停止它.这堂课是:

public enum BlinkLedTask {

    INSTANCE;

    private Logger logger = RpiLogger.getLogger(getClass());

    private Task task;
    private ExecutorService service;

    private BlinkLedTask() {

    }

    public void run(String[] frequency) {
        stop();

        task = new Task(frequency);
        service = Executors.newSingleThreadExecutor(RpiThreadFactory.INSTANCE);
        service.execute(task);
    }

    public void stop() {
        if(Objects.isNull(task) || Objects.isNull(service)) {
            return;
        }

        try {
            task.terminate();
            service.shutdownNow();
        } catch (Exception cause) {
            logger.error(cause.getMessage(), cause);
        }       
    }

    private static class Task implements Runnable {

        private volatile boolean running = true;
        private String[] frequency;
        private …
Run Code Online (Sandbox Code Playgroud)

java multithreading

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

在java中的地图内部映射

这个实例化有什么问题:

Map<String, String, HashMap<String,String>> map = new HashMap<String, String, HashMap<String,String>>();
Run Code Online (Sandbox Code Playgroud)

java

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

从方法返回两个不同的值

我有一个方法可以将String记录列表解析为对象并返回List对象.所以我的方法签名是这样的.

public List<ParsedObject> parse(String[] records);

但我也想返回,其他指标,如未成功解析的字符串记录数.现在我感到困惑,如何返回此指标.一种选择是创建另一个包装类,该类包含已解析记录列表和存储这些度量标准的成员.

但是我经常面对这种情况,这样我最终会创建许多包装类.

不确定我是否解释得很好.这里有什么建议?

java

3
推荐指数
2
解决办法
917
查看次数

从java方法返回两个值

假设我在java中有一个方法,它在数据库中查找用户并返回他们的地址和他们所在的团队.

我想从方法中返回两个值,并且不希望将方法拆分为两个,因为它涉及数据库调用,并且拆分涉及调用次数的两倍.

鉴于中到大型软件项目的典型问题,最佳选择是什么?

whatGoesHere getUserInfo(String name) {
  // query the DB
}
Run Code Online (Sandbox Code Playgroud)

我知道这个问题与现有的问题有些重复,但是每一个问题都有一些元素使得它与这个例子不同,我认为值得再次提问.

java oop coding-style

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

有两个键的地图

可能的重复:
如何实现具有多个键的 Map?
单值映射的多个键 Java

我必须根据两个传入的字符串属性获取枚举的值。我一直在做这个作为单个值的映射。现在我面临着串联。有没有办法让地图有两个键,这样我就可以

Map.get("attr1","attr2");
Run Code Online (Sandbox Code Playgroud)

这将返回正确的枚举。或者我是否只需要连接所有可能的值并将其用作键?

我正在寻找干净的解决方案(我们不都是:P)

java string concat key map

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

<T,TU等的目的>

老实说,我不知道他们叫什么.我一直无法在互联网上找到文章.

所以我明白你可以这样做:

public struct Pair<T, U>
{
    public readonly T Value1;
    public readonly U Value2;

    public Pair(T fst, U snd)
    {
        this.Value1 = fst;
        this.Value2 = snd;
    }
    public override String ToString()
    {
        return "(" + Value1 + ", " + Value2 + ")";
    }
    public Pair<U, T> Swap()
    {
        return new Pair<U, T>(Value2, Value1);
    }
}
Run Code Online (Sandbox Code Playgroud)

它可能是一个class而不是一个struct.

但我很困惑,出于什么目的?某种性能提升?据我所知,您可以使用这些东西(抱歉,这是什么名称?)来保存值.但是你不会总是知道它应该拥有什么样的数据吗?例如:如果您需要存储产品,则只需制作产品类.当然,你知道它需要掌握什么样的数据,因为你正在设计代码.

所以是的,我想我的问题是:这个的目的是什么,与普通物体相比有什么优势; 您指定了更多

我想我不清楚.我也想知道:有没有充分的理由去创造像上面那样的东西?例如,一个更具体的对象,例如将产品数据存储在产品对象中,而不是一些可以接收所有内容的通用对象.

新:更多文本:另外,你怎么能处理完全通用的错误编码?当我不知道我必须处理什么样的数据类型时,我担心会进行任何类型的数学操作或实际上任何操作.如果它需要我为所有数据类型编写错误处理,那么我真的看不到这些通用参数的优点.

c# generics

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