标签: parameterized

如何在内部类中使用参数化泛型类型?

我试图实现一个具有通用参数化类型的内部类.

这是我的代码的简短版本:

public class AVLTree<T extends Comparable<? super T>> implements Iterable<T> {
 ...

 private class BinaryNode<T extends Comparable<? super T>> {
  ...
 }

 private class TreePreOrderIterator<E extends Comparable<? super E>> implements Iterator<E> {
  ...
 }

}
Run Code Online (Sandbox Code Playgroud)

这是行不通的.Eclipse/Java给我一个警告,T内部类的类型参数是"隐藏"超类的参数.有关如何解决此问题的任何想法?

编辑:我添加了另一个我遇到问题的内部类:TreePreOrderIterator.通用型T将是相同的AVLTree,BinaryNodeTreePreOrderIterator.内部类需要访问AVLTree中的字段.

EDIT2:此外,Iterator访问a BinaryNode<T>,这是一个冲突.

(注意:这是我正在为一堂课做的更大项目的一部分.如果需要任何其他信息,请询问.)

java generics parameterized inner-classes

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

AndroidJUnit4和参数化测试

Google为Android编写测试提供了新的类,尤其是使用jUnit 4:https://developer.android.com/tools/testing-support-library/index.html

我想知道是否可以使用来自jUnit的AndroidJUnit4运行器以及参数化运行器?

junit android parameterized android-testing

17
推荐指数
1
解决办法
5512
查看次数

使用jUnit 4,我可以参数化@BeforeClass吗?

我正在使用jUnit来管理访问数据库的应用程序的集成测试.因为设置测试数据是一项耗时的操作,所以我在@BeforeClass方法中一直这样做,每个测试类只执行一次(与@Before每个测试方法运行一次的方法相反).

现在我想尝试一些不同的排列来配置数据层,在每个不同的配置上运行我的所有测试.这似乎是Parameterized测试跑步者的自然使用.问题是,Parameterized为类构造函数提供参数,该@BeforeClass方法是抽象的,并在类构造函数之前调用.

几个问题,

是否Parameterized调用@BeforeClass的参数的每个排列方法,还是只调用一次?

如果@BeforeClass重复调用该方法,是否有某种方法可以从内部访问参数值?

如果不是这些,人们认为什么是解决这个问题的最佳替代方法?

junit integration-testing parameterized junit4

16
推荐指数
1
解决办法
5376
查看次数

JComboBox是原始类型.应参数化对泛型类型JComboBox <E>的引用

String[] boxOptions = {"1","2","4","8","16","20","40","100","400"};
JComboBox box = new JComboBox(boxOptions);
Run Code Online (Sandbox Code Playgroud)

我以前在我的程序中有这些确切的代码行,并没有收到此错误.我做了一些搜索,我发现的结果有点过头了.有任何想法吗?

错误是:

JComboBox is a raw type. References to generic type JComboBox<E> should be parameterized
Run Code Online (Sandbox Code Playgroud)

java generics parameterized type-safety

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

Java通用接口与通用方法,以及何时使用一个

我想知道,除了语法差异,何时会使用通用接口而不是接受通用参数的方法?

public interface Flight<T>{
   void fly(T obj);
}
Run Code Online (Sandbox Code Playgroud)

过度

public interface Flight{
    void <T> fly(T obj);
}
Run Code Online (Sandbox Code Playgroud)

java generics methods interface parameterized

16
推荐指数
1
解决办法
3070
查看次数

返回带泛型的对象子类

使用抽象类,我想定义一个为子类返回"this"的方法:

public abstract class Foo {
    ...
    public <T extends Foo> T eat(String eatCake) {
        ...
        return this;
    }
}  

public class CakeEater extends Foo {}
Run Code Online (Sandbox Code Playgroud)

我希望能够做到这样的事情:

CakeEater phil = new CakeEater();
phil.eat("wacky cake").eat("chocolate cake").eat("banana bread");
Run Code Online (Sandbox Code Playgroud)

可以说香蕉面包会抛出IllegalArgumentException,并带有"Not a cake!"的消息.

java generics subclass parameterized return-type

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

如何在参数化测试中测试异常?

在JUnit4中,您可以通过在一个方法中提供参数集合来编写参数化单元测试,该方法将被传递给测试的构造函数并在另一个方法中进行测试.如果我有一个我希望抛出异常的参数,我该如何指定?

java junit unit-testing parameterized junit4

15
推荐指数
4
解决办法
9162
查看次数

在Android Studio中运行参数化单元测试时,未找到给定的测试包括错误

我尝试在Android Studio中运行参数化单元测试,如下所示.

import android.test.suitebuilder.annotation.SmallTest;  

import junit.framework.TestCase;    

import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameter;
import org.junit.runners.Parameterized.Parameters;  

import java.util.Arrays;
import java.util.Collection;    

@RunWith(Parameterized.class)
@SmallTest
public class FibonacciTest extends TestCase {
    @Parameters
    public static Collection<Object[]> data() {
        return Arrays.asList(new Object[][] {
                {0, 0}, {1, 1}, {2, 1}, {3, 2}, {4, 3}, {5, 5}, {6, 8}
        });
    }   

    @Parameter // first data value (0) is default
    public /* NOT private */ int fInput;    

    @Parameter(value = 1)
    public /* NOT private */ int …
Run Code Online (Sandbox Code Playgroud)

android unit-testing parameterized parameterized-unit-test android-studio

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

我应该如何将表名传递给存储过程?

我只是遇到了一个奇怪的事情...我们网站上有一些代码正在处理一个巨大的SQL语句,通过执行一些搜索来修改代码并根据某些用户值进行替换,然后将其传递给SQL Server一个问题.

我认为这将作为存储过程的参数化查询更清晰,用户值作为参数,但当我仔细观察时,我明白为什么他们可能会这样做...他们从中选择的表是可变地依赖于那些用户值.

例如,在一种情况下,如果值为("FOO","BAR"),则查询最终会变为"SELECT*FROM FOO_BAR"

有一个简单明了的方法吗?我正在尝试的一切似乎都不优雅.

编辑:当然,我可以动态生成存储过程中的sql,并执行(bleh),但那时我想知道我是否获得了任何东西.

EDIT2:以一种聪明的方式重构表名,比如将它们全部放在一个表中,不同的名称作为新列将是一个很好的方法来解决所有这些,这是几个人直接指出或暗示的.可悲的是,在这种情况下,它不是一种选择.

sql sql-server parameterized

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

应用参数后查看查询的方法?

在C#应用程序中,我通过创建带参数的查询字符串来构建查询,然后添加参数及其值的命令.例如:

string query = "UPDATE USERS u SET u.username = @PARM_USERNAME " +
               "WHERE u.id = @PARM_USERID ";

command.Parameters.AddWithValue("@PARM_USERNAME", user.username);
command.Parameters.AddWithValue("@PARM_USERID", user.id);

command.Connection.Open();
int res = command.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)

看看带有参数的查询是否有用,这在C#/ Visual Studio中是否可行?我可以查看command.CommandText,但它只显示与上面查询相同的内容,其中包含参数占位符.如果它有帮助,这是针对MySQL的.

.net c# mysql parameterized

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