小编jay*_*jay的帖子

具有泛型的Java Copy构造函数

这之前可能已经被问了一百万次,但是我在使用有界类型参数在抽象类上编写复制构造函数时遇到了麻烦.我有一些看起来像这样的代码:

public abstract class Superclass<T> {
    Set<? extends Variable<T>> vars;

    public abstract Superclass<? extends T> copy();

    class Variable<T> {
        T value;
    }
}

class Foo extends Superclass<Integer> {
    public Foo copy() {
        Foo _newFoo = Foo();
        Set<FooVariable> _newVars = new HashSet<FooVariable>();
        _newVars.addAll(this.vars);
        _newFoo.vars = _newVars;
    }

    class FooVariable extends Variable<Integer> { /* ... */ }
}

class Bar extends Superclass<String> {
    public Bar copy() {
        Bar _newBar = Bar();
        Set<BarVariable> _newVars = new HashSet<BarVariable>();
        _newVars.addAll(this.vars);
        _newBar.vars = _newVars;
    }

    class …
Run Code Online (Sandbox Code Playgroud)

java generics

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

当等于无法确定时,Java等于

我想知道在(a)没有足够的信息来确定C的两个实例是否相等或者(b)调用方法的情况下,覆盖C类对象的equals(和hashCode)方法的正确Java编程范例是什么?不应该能够确定两个C实例是否相等.

例如,在我的项目中,我有一个PlayingCard班级.在我看来,如果a PlayingCard面朝上,那么调用方法应该可以访问其属性,但如果它面朝下,那么这些属性应该保持未知:

class PlayingCard {
    private Rank rank;
    private Suit suit;
    private boolean isFaceDown;

    public PlayingCard(Rank rank, Suit suit, boolean isFaceDown) {
        this.rank = rank;
        this.suit = suit;
        this.isFaceDown = isFaceDown;
    }

    public Rank getRank() { return isFaceDown ? null : rank; }

    public Suit getSuit() { return isFaceDown ? null : suit; }
Run Code Online (Sandbox Code Playgroud)

似乎,为了Java Collections Framework,如果两个扑克牌具有相同的等级和套装,它们应该是相同的:

    public boolean equals(Object obj) {       // attempt #1
        if(this == obj) return true;
        if(obj == …
Run Code Online (Sandbox Code Playgroud)

java equals

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

SQL如何模拟xor?

我想知道是否有人可以帮助我解决我在求职面试中遇到的这个问题.假设我有两个表:

table1                 table2
------------           -------------
id | name              id | name
------------           -------------
 1 | alpha              1 | alpha
 3 | charlie            3 | charlie
 4 | delta              5 | echo
 8 | hotel              7 | golf
 9 | india
Run Code Online (Sandbox Code Playgroud)

现在的问题是写一个SQL查询将返回所有在任的行table1table2而不是两个,即:

result
------------
id | name
------------
 4 | delta
 5 | echo
 7 | golf
 8 | hotel
 9 | india
Run Code Online (Sandbox Code Playgroud)

我以为我可以做一些完全外连接:

SELECT table1.*, table2.* 
FROM table1 FULL OUTER JOIN table2 
ON table1.id=table2.id 
WHERE table1.id …
Run Code Online (Sandbox Code Playgroud)

sql

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

Intellij没有从测试目录中找到源文件

我是Intellij的新手,刚开始我的第一个Maven项目.我有以下目录结构:

MyProject
??? myapp.iml
??? pom.xml
??? src
    ??? main (sources root)
    ?   ??? java
    ?   ?   ??? com
    ?   ?       ??? mysite
    ?   ?           ??? myapp
    ?   ?               ??? App.java
    ?   ??? main.iml
    ??? test (test sources root)
        ??? java
        ?   ??? com
        ?       ??? mysite
        ?           ??? myapp
        ?               ??? AppTest.java
        ??? test.iml
Run Code Online (Sandbox Code Playgroud)

问题是,该编译器的IntelliJ不能解析符号AppAppTest.java.在项目结构中,我已MyProject设置为模块的内容根MyProject,src/main设置为模块的内容根main,并src/test设置为模块的项目根test.

我在这里尝试了解决方案:在intellij中将main/java类添加到我的test/java目录中,但是Intellij不允许我添加src/main作为依赖项src/test …

intellij-idea

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

PHPUnit 错误 - 找不到类

我刚刚在我的系统上安装了 PHPUnit 3.5,从 3.4 升级它,但我在使用新版本时遇到了一些问题。当我尝试运行测试时,我总是得到相同的输出。这是我尝试在命令行上运行StackTestPHPUnit 手册中的示例时得到的结果,示例 4.1

> phpunit StackTest

X-Powered-By: PHP/5.2.17
Content-type: text/html

PHPUnit 3.5.13 by Sebastian Bergmann.

Class StackTest could not be found in StackTest.php.
Run Code Online (Sandbox Code Playgroud)

更糟糕的是,当我尝试从 Web 浏览器运行它时,我得到以下输出:

Fatal error: Class 'PHPUnit_Framework_TestCase' not found in /path/to/tests/StackTest.php on line 2 
Run Code Online (Sandbox Code Playgroud)

有谁知道如何设置?谢谢。

php phpunit

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

是否可以使用较新的证书重新签名Java applet?

我有一个签名的Java小程序,证书刚刚过期.我有一个新的证书,但我不确定我能找到原始的,未签名的applet jar文件.有什么办法可以把签名的jar用新的证书取代旧的证书吗?谢谢.

java code-signing jarsigner

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

如何在 M1 Mac 上安装 sqlite3 gem?

我正在尝试在运行 M1 Pro 芯片的 Mac 上安装sqlite3-ruby gem。

\n

安装失败并显示以下输出:

\n
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.\n\n    current directory: /Users/jay/.frum/versions/3.1.0/lib/ruby/gems/3.1.0/gems/sqlite3-1.4.2/ext/sqlite3\n/Users/jay/.frum/versions/3.1.0/bin/ruby -I /Users/jay/.frum/versions/3.1.0/lib/ruby/3.1.0 -r ./siteconf20220215-37077-7vshdb.rb extconf.rb\nchecking for sqlite3.h... yes\nchecking for pthread_create() in -lpthread... yes\nchecking for -ldl... yes\nchecking for sqlite3_libversion_number() in -lsqlite3... no\nsqlite3 is missing. Try \'brew install sqlite3\',\n\'yum install sqlite-devel\' or \'apt-get install libsqlite3-dev\'\nand check your shared library search path (the\nlocation where your sqlite3 shared library is located).\n*** extconf.rb failed ***\nCould not create Makefile due to some reason, probably …
Run Code Online (Sandbox Code Playgroud)

sqlite ruby-on-rails

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

Android:为ListView中的每个项添加事件侦听器

我有一个带有ListView的Android应用程序,列表中的每一行都有一个TextView和一个Button.我想要做的是为ListView中的每个Button添加一个OnClickListener,但我无法弄清楚如何获得对每个Button的某种引用......任何人都可以给我一个提示吗?

这是我绑定到ListAdapter的XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView 
    android:id="@+id/row_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:textSize="18sp">
</TextView>
<Button
    android:id="@+id/row_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

我试过这样的东西,但它不起作用:

SimpleCursorAdapter rows = new SimpleCursorAdapter(this, R.layout.row_layout, cursor, from, to);
setListAdapter(rows);
Button button = (Button) getListAdapter().getView(0, null, getListAdapter()).findViewById(R.id.row_button);
button.setOnClickListener(new View.OnClickListener() {
    @Override public void onClick(View v) {
        Log.i(TAG, "clicked");
    }
}); 
Run Code Online (Sandbox Code Playgroud)

android event-handling android-layout

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

如何在Perl中强制列表或标量上下文?

我对Perl中的列表和标量上下文的一些细节有点困惑,我希望有人可以帮我一点.我的最终目标是比较两个数组中的元素数量,除了其中一个数组是一个匿名数组,我不知道让Perl告诉我它有多少元素.这是我在调试器中输入的内容:`

DB<10> @a = ([1,2,3,4],[5,6,7,8,9],[10,11])

DB<11> @b = $a[1]

DB<12> $c = @b

DB<13> p $c
1             # Why didn't this print out 5?

DB<14> $d = $a[1]

DB<15> p @$d
56789

DB<16> p $$d
Not a SCALAR reference at (eval 17)[/opt/local/lib/perl5/5.8.9/perl5db.pl:638] line 2.

DB<17> @e = @a[1]

DB<18> p @e
ARRAY(0x87c358)

DB<19> p ${@e}
Run Code Online (Sandbox Code Playgroud)

我尝试了有趣的角色组合,有人可以告诉我我做错了什么吗?谢谢.

perl

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

python3导入找不到模块

我正在尝试测试书中的一个示例,并且我得到了一个ImportError.

该示例开始于:

from tkinter import *
from PP4E.Gui.Tools.widgets import frame, button, entry
Run Code Online (Sandbox Code Playgroud)

如果我把一个import sys; print(sys.path)放在代码的开头,输出是

['/Users/aaa/Documents/workspace/programming-python/PP4E/Lang/Calculator', 
 '/usr/local/lib/python3.4/site-packages/setuptools-12.2-py3.4.egg',
 '/usr/local/lib/python3.4/site-packages/pip-6.0.8-py3.4.egg',
 '/User/aaa/Documents/workspace/programming-python',... ]
Run Code Online (Sandbox Code Playgroud)

这是我的programming-python目录的截断版本的样子:

? tree
.
??? PP4E
?   ??? __init__.py
?   ??? Gui
?   ?   ??? Tools
?   ?   ?   ??? __init__.py
?   ?   ?   ??? widgets.py
?   ?   ??? __init__.py
?   ??? Lang
?   ?   ??? Calculator
?   ?       ??? __init__.py
?   ?       ??? calc0.py
??? site-packages
    ??? PP4E.pth
Run Code Online (Sandbox Code Playgroud)

我收到的错误消息是:

? python3 calc0.py                                                            

Traceback …
Run Code Online (Sandbox Code Playgroud)

python python-3.x

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