小编Boh*_*ian的帖子

Java泛型参数绑定到任何类型的任何一种

是否存在将泛型类型参数约束到任何类型的语法或解决方法?

我知道您可以将类型约束为所有类型(即AND逻辑):

public class MyClass<T extends Comparable<T> & Serializable> { } // legal syntax
Run Code Online (Sandbox Code Playgroud)

是否有OR逻辑版本,即这样的东西:

public class MyClass<T extends Comparable<T> | Serializable> { } // illegal syntax
Run Code Online (Sandbox Code Playgroud)

如果没有支持这种语法的语法(我认为没有),是否有一种解决方法或方法是一个好的模式?

对于某些上下文,一个示例用例可能是:

/** @return true if the obj is either has the same id, or if obj is the same as id */
public <T extends MyClass | String> boolean sameAs(T obj) {
    if (obj instanceof String) return this.id.equals(obj);
    if (obj instanceof MyClass) return this.id.equals(((MyClass)obj).id); …
Run Code Online (Sandbox Code Playgroud)

java generics polymorphism

14
推荐指数
2
解决办法
4078
查看次数

Eclipse - 显示完整的调用堆栈(比如它在调试器中遇到断点)而没有放入断点?

我正在使用一个对我来说不熟悉的遗留Java应用程序,因此有一种方法可以找出它是如何工作的并且更容易找到事情,我认为在执行操作后能够获得完整的堆栈跟踪,以便能够根据特定的UI动作查看正在使用的类.我原以为这在调试器中是可能的,但似乎只有在我插入一个断点时它才有效,在这种情况下,部分目的是为了让我不必知道被调用的是什么才能插入断点第一(因为这有助于告诉我).

如果这是一个基本问题我很抱歉,我已经搜索了这个,但我找不到正确的答案.

java eclipse debugging stack-trace

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

静态变量的线程安全性

class ABC implements Runnable {
    private static int a;
    private static int b;
    public void run() {
    }
}
Run Code Online (Sandbox Code Playgroud)

我有一个如上所述的Java类.我有这个类的多个线程.在该run()方法中,变量a&b每次递增几次.在每个增量上,我将这些变量放在Hashtable中.

因此,每个线程都会增加两个变量并将它们放在Hashtable中.如何使这些操作线程安全?

java multithreading thread-safety

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

MySQL加入同桌

我有'meta_data'表,其中包含以下字段:

  • ID
  • POST_ID
  • meta_key
  • meta_value

我想循环并显示一个EACH post(post_id)列表,其中包含一个条目meta_key='abc'不是一个条目meta_key='def'

基本上,每个有meta_key='abc'条目的帖子都应该有一个meta_key='def'条目.我想生成列表,以便我可以添加缺少的meta_key='def'条目.

mysql sql

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

logstash with java10 get error:无法识别的VM选项'UseParNewGC'

我正在使用java10运行logstash,就像这个commond:

./logstash -f std_std.conf

但我得到这个错误:

无法识别的VM选项'UseParNewGC'

错误:无法创建Java虚拟机.

错误:发生了致命异常.程序将会退出.

谢谢你马赫


对不起,不支持java 10 ~~~~关闭〜

logstash

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

构造函数中的泛型推理

如果我有课Foo:

public class Foo<T> {
    public Foo(T t) {
        //do something
    }

    public static <E> void bar(E e) {
         //do something
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么Foo.bar("String");推断它E是一个String(因此不会抛出编译器警告),但new Foo("String");不推断它T是一个String?

java generics

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

是什么导致Java 7中的G1垃圾收集器中止其并发标记阶段?

我在使用G1垃圾收集器的应用程序中偶尔注意到完整的GC,并试图找出它们发生的原因.

从一个区域扫描开始到下一个区域的循环摘录如下.在61807.406,记录完整的GC,然后记录并发标记中止的条目.我想知道的是为什么GC认为需要做一个完整的,停止世界的垃圾收集以及如何避免它.

请注意,此问题似乎之前已在OpenJDK邮件列表中被询问,但没有回复.

为简洁起见,我已经修剪了年轻的GC的细节,但如果需要,我可以在某处发布完整的块.

61805.878: [GC concurrent-root-region-scan-start]
61805.882: [GC concurrent-root-region-scan-end, 0.0033586]
61805.882: [GC concurrent-mark-start]
61806.133: [GC pause (young), 0.02836202 secs]
   [Eden: 498M(498M)->0B(478M) Survivors: 14M->34M Heap: 3025M(4096M)->2548M(4096M)]
 [Times: user=0.19 sys=0.00, real=0.03 secs] 
61806.426: [GC pause (young), 0.02766222 secs]
   [Eden: 478M(478M)->0B(480M) Survivors: 34M->32M Heap: 3050M(4096M)->2576M(4096M)]
 [Times: user=0.19 sys=0.00, real=0.03 secs] 
61806.717: [GC pause (young), 0.02214895 secs]
   [Eden: 480M(480M)->0B(502M) Survivors: 32M->10M Heap: 3056M(4096M)->2571M(4096M)]
 [Times: user=0.09 sys=0.00, real=0.02 secs] 
61807.000: [GC pause (young), 0.01899188 secs]
   [Eden: 502M(502M)->0B(502M) Survivors: 10M->10M Heap: 3074M(4096M)->2573M(4096M)]
 [Times: …
Run Code Online (Sandbox Code Playgroud)

java garbage-collection g1gc

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

Postgres在WHERE id!= int查询中排除NULL

昨天我试图从统计表中过滤掉用户ID时遇到了Postgres中的一个奇怪问题.当我们这样做,例如user_id != 24,Postgres的排除其中的行user_idNULL也.

我创建了以下测试代码,显示相同的结果.

CREATE TEMPORARY TABLE test1 (
    id int DEFAULT NULL
);

INSERT INTO test1 (id) VALUES (1), (2), (3), (4), (5), (2), (4), (6), 
    (4), (7), (5), (9), (5), (3), (6), (4), (3), (7), 
    (NULL), (NULL), (NULL), (NULL), (NULL), (NULL), (NULL);     

SELECT COUNT(*) FROM test1;

SELECT id, COUNT(*) as count
FROM test1
GROUP BY id;

SELECT id, COUNT(*) as count
FROM test1
WHERE id != 1
GROUP BY id;

SELECT id, …
Run Code Online (Sandbox Code Playgroud)

postgresql null where

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

如何在List中获取唯一值

我有2个带有数据的文本文件.我正在阅读这些文件BufferReader并将每个文件的一列数据放入a List<String>.

我在每个数据中都有重复的数据,但我需要在第一个数据中使用唯一数据List来对抗第二个数据中的重复数据List.

如何从中获取唯一值List

java list unique-values

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

使用正则表达式示例的logstash if语句

任何人都可以告诉我什么if是正则表达式在logstash中的声明?

我的尝试:

if [fieldname] =~ /^[0-9]*$/

if [fieldname] =~ "^[0-9]*$"
Run Code Online (Sandbox Code Playgroud)

两者都不奏效.

我打算做的是检查"fieldname"是否包含整数

regex logstash

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