小编Ski*_*kip的帖子

Java的.如何改变方法签名

是否可以根据参数更改Java中的方法签名?

例:

给定一个类,带有泛型参数MyItem<T>.假设这个类有一个方法,它返回T 给定第二个类'myReturner()',它包含方法myreturn(MyItem<T>).

题:

我可以myreturn(MyItem<T>)返回一个T对象,具体取决于MyItem的泛型参数吗?

我想这是不可能的,因为签名是在Java编译期间设置的,并且在编译时不知道T. 如果是这样,模拟方法的最佳方法是什么,它将返回不同的对象,具体取决于参数?是为每种参数类型编写自己的方法唯一的方法吗?

java generics methods signature

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

为什么不用分号连接多个MySQL查询与Perl DBI一起使用?

我想使用DBI将值插入两个单独的MySQL表中.我试图INSERT通过;在它们之间插入一个将两个工作查询合并为一个:

$dbh->do(q{
    INSERT INTO `testA`(test) values('testvalue111');
    INSERT INTO `testB`(test) values('testvalue222');
});
Run Code Online (Sandbox Code Playgroud)

但我总是得到一个错误:

"INSERT INTO`testB`(测试)值('testvalue222 ......)中的语法错误

如果我将查询分成两个单独的do调用,它就可以工作.但组合查询在phpMyAdmin中工作正常.为什么它在Perl中失败?

mysql perl dbi

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

SWT - 如何监听鼠标事件,并检索其绝对位置?

我通过添加Filter来捕获具有Composites的shell内的鼠标事件.

目前,事件相对于复合材料定位,它们发生在那里.
如何检索MouseEvents的绝对位置?(绝对位置是显示屏左上角的0,0位置).

parentShell.getDisplay().addFilter(SWT.MouseDown, new Listener() {
        @Override
        public void handleEvent(Event event) {
            //do not know the absolute position here
        }
    });
Run Code Online (Sandbox Code Playgroud)

java swt

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

"附加到标准流"在docker中意味着什么?

我正在阅读run命令的规范,并看到以下内容:

-i:即使没有连接,也要保持STDIN打开

-a = []:附加到STDIN,STDOUT和/或STDERR

您可以指定要连接的三个标准流(STDIN,STDOUT,STDERR)中的哪一个

但我缺乏理解:"将容器连接到标准流是什么意思?" 有人可以解释一下吗?例如-i参数做什么?

stdout docker

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

用Java中的另一个线程触发线程的方法

假设我有一个class MyThread,Runnable用一个方法实现dosomething():

class MyThread implements Runnable{
    Object dosomething(Parameter p){ ... }    
    run(){...};
}
Run Code Online (Sandbox Code Playgroud)

如果我做:

main(){
    MyThread my = new MyThread().run();    
    Object o = my.dosomething(p);
}
Run Code Online (Sandbox Code Playgroud)

将在线程dosomethingmyThreadmain线程中执行?
如何dosomething从主线程开始执行myThread并检索返回的对象?

java multithreading

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

Java Swt-调整动画大小。每次更改布局后如何重画?

我有一MyComposite堂课,我想为“尺寸变化”设置动画。
为此,我正在循环更改大小。
每次打loop之后,我都会打电话给layout()

不幸的是,Composite每次迭代后都不会重新绘制,而是直接跳到我Composite的最终大小。

如何在每次更改尺寸时强制窗口小部件重新绘制?

MyComposite和动画



//start
new Animation().start(myComposite);

...

public MyComposite(Composite parent, int style, int bgcolor) {
        super(parent, style);
        this.setBackground(getDisplay().getSystemColor(bgcolor));       
    }

    @Override
    public Point computeSize(int wHint, int hHint, boolean changed) {
        return super.computeSize(width, height, changed);
    }


    class Animation{
        public void start(MyComposite composite){
            for(int i=0; i<1000; i++){
                composite.width++;
                composite.getParent().layout(true, true);
            }
        }
    }


MyComposite

java swt

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

在Java8 Date API中将持续时间转换为年份?

我有一个远在过去的约会.
我发现了这个日期和现在之间的持续时间.
现在我想知道 - 多年来这是多少?

我使用Java8 API提出了这个解决方案.
这是一个可怕的解决方案,因为我必须首先手动将持续时间转换为Days,因为UnsupportedTemporalTypeException否则会有- 否则LocalDate.plus(SECONDS)不支持任何原因.
即使编译器允许此调用.

转换Duration成年份的可能性是否较低?

LocalDate dateOne = LocalDate.of(1415, Month.JULY, 6);
Duration durationSinceGuss1 = Duration.between(LocalDateTime.of(dateOne, LocalTime.MIDNIGHT),LocalDateTime.now());

long yearsSinceGuss = ChronoUnit.YEARS.between(LocalDate.now(), 
        LocalDate.now().plus(
                TimeUnit.SECONDS.toDays(
                        durationSinceGuss1.getSeconds()), 
                ChronoUnit.DAYS) );

/*
 * ERROR - 
 * LocalDate.now().plus(durationSinceGuss1) causes an Exception. 
 * Seconds are not Supported for LocalDate.plus()!!!
 * WHY OR WHY CAN'T JAVA DO WHAT COMPILER ALLOWS ME TO DO?
 */
//long yearsSinceGuss = ChronoUnit.YEARS.between(LocalDate.now(), LocalDate.now().plus(durationSinceGuss) );

/*
 * ERROR - 
 * Still an …
Run Code Online (Sandbox Code Playgroud)

java duration date java-8 java-time

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

通过Jenkins在shell中执行“ pkill”-构建失败

我正在通过Jenkins在Linux Shell上执行pkill命令。当进程不存在时,此命令将始终使构建失败。

sudo docker exec mycontainer sh -c 'pkill -f processToKill || true '
Run Code Online (Sandbox Code Playgroud)

为什么?即使pkill失败,如何使它成功?

linux shell jenkins

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

当从实例 X 的 NLB DNS 卷曲时,内部网络负载平衡器不会路由到实例 X

  • 我有一个网络负载平衡器 (NLB) 的内部(解析为私有 ip)
  • 端口 80 上的 NLB 侦听器指向目标组。目标组中的实例 10.141.80.140 是唯一一个。

问题:
当我在实例 10.141.80.140 上卷曲 NLB 的 DNS 时, 我没有收到任何响应。
希望 NLB 重定向到 10.141.80.140,但它没有发生。
当我在 10.141.80.140 上时,NLB DNS 仅不会重定向 - 重定向可以从同一子网中的其他实例进行

细节:

  • EC2 10.141.80.140 周围的安全组是全球开放的,入站和出站
  • 当我从另一个实例 10.141.80 卷曲 NLB DNS 时。122在具有相同安全组和其他设置的同一子网中 - NLB 正确解析为 10.141.80.140
  • 当我从实例卷曲 NLB DNS 时,NLB 应将 10.141.80 解析到该 DNS。140 - NLB解析为 10.141.80.140
  • 当我从实例 10.141.80 卷曲实例 ip 10.141.80.140 时。140 - 我得到回应
  • 当我从实例 10.141.80 卷曲实例 ip 10.141.80.140 …

nlb amazon-web-services

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

c ++通过移动指针在数组中导航

在下面我预计将打印13.
我想通过一个数组成员的大小(即int)来移动arr(这是一个指向内存的指针,其中存储了数组中的int值,如果我理解了一切).

而是打印45.因此,检索第五个Array成员进行一个数组成员范围的跳转.为什么?

int arr[] = {1,13,25,37,45,56};
int val = *( arr + 4 );         //moving the pointer by the sizeof(int)=4
std::cout << "Array Val: " << val << std::endl;
Run Code Online (Sandbox Code Playgroud)

c++ arrays pointers

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