我已经看到了很多问题,如果没有指定默认类型,是否可以指定默认类型。答案似乎是否定的。我的问题是,如果您的类头需要一个类型参数,而您只是不传递一个类型参数,那么它默认为什么?反对?以队列的简单链接节点实现(缩写)为例:
public class ListQueue<T> implements Queue<T>
{
private Node<T> first;
private Node<T> last;
public void enqueue(T item)
{
Node<T> x = new Nod
我有一个代码:
Model.java:
public abstract class Model <T> {
public static <T> T find(int id) {
T result = (T) blackMagicMethod(T.class, id);
return result;
}
}
,User.java
public class User extends Model<User> {
}
,Main.java:
public class Main {
public static void main(Stri
我想定义一个泛型代数数据类型,用于我的parse函数,如下所示: sealed class Result<T> {
class Success(val value: T, val pos: Int) : Result<T>()
class Failure(val message: String, val pos: Int) : Result<T>()
}
fun <T> parse(t: Parser<T>, input: String, initialPos: Int = 0, collectErrors: Bo
我有一个数据对象,我到处传递:
public class TimedResult<T>
{
public ResultRequest Request { get; set; }
public T Data { get; set; }
public TimeSpan TimeTaken { get; set; }
}
在我的Manager类中,我做了一些引发事件的工作:
public void Execute(ResultRequest request)
{
var result = new TimedResult<DataTable>()
我对ArrayLists和泛型有些困惑,例如,在下面的程序中,当我声明Gen<Integer>iOb=new Gen<Integer>(88);时,它声明了一个通用类型的Integer,对吗?但是,如果我以同样的方式宣布一个数组列表的话?对于数组,它是在尖括号中的类型,然而,在研究泛型时,它说尖括号中的类型是泛型类型?我如何知道它是类类型的数组列表还是泛型的数组?
//A simple generic class
//Here, T is a type parameter that
///will be replaced by a real type
//when a
我的代码正在使用可调用到ExecutorService的submit()。但是,当我试图将它更改为invokeAll()时,我会得到编译错误。
代码:
public class FutureDemo{
public FutureDemo(){
ExecutorService service = Executors.newFixedThreadPool(10);
/*
for ( int i=0; i<10; i++){
MyCallable myCallable = new MyCallable((long)
下面的代码让我非常困惑。
public class Test<T> {
public static <T> Test<T> ok(T result) {
..
我理解类名中的泛型。如果"ok“方法是这样的话,我可以理解
public static Test<T> ok(T result) {
或者这个
public static T ok(T result) {
但是为什么在测试<T>返回类型之前还有额外的<T>,我不明白。
我经常在Kotlin看到下面的关于密封类的代码A。
1:从sealed class Result的结构来看,Nothing似乎就像R的子类,对吗?
他说:我认为A码应该是B码,对吗?
他说:而且,我似乎从来没见过像C代码那样的代码,是错的吗?
码A
sealed class Result<out R> {
data class Success<out T>(val data: T) : Result<T>()
data class Error(val exception: Exception) : Result<Nothing>(
我需要在同一个接口中使用泛型方法和非泛型方法。
public interface IBRClientActions<T>
where T : class
{
T add(T element);
Hashtable add(Hashtable hashtable);
void update(T element);
void update(Hashtable hashtable);
}
在我用多种类型的其他接口实现这个接口之后
public interface IBRClientActions : IBRClientActions<Ad
使用T参数的泛型方法肯定很方便。但是,我很好奇,如果您将一个参数(如Class<T> clazz )传递给该方法,那么泛型方法的使用将是什么。我想出了一个可能有用的案子。也许您只想根据类的类型运行方法的一部分。例如:
/** load(File, Collection<T>, Class<T>)
* Creates an object T from an xml. It also prints the contents of the collection if T is a House object.
* @return T
* Throws Except
下面我有一个调用两个方法的驱动程序。第一个方法的参数类型是扩展多边形的泛型类型。第二种方法的参数类型是多边形。这两种方法都要求我转换参数,以便调用子类方法。哪种更好些呢?我为什么要用一种而另一种?
public class Driver {
public static void main(String[] args) {
Square s1;
try {
s1 = new Square(new Point(0,0), new Point(0,1), new Poin
我试图理解一种将string转换为Enum found 的扩展方法。
public static T ToEnum<T>(this string value, T defaultValue)
{
if (string.IsNullOrEmpty(value))
{
return defaultValue;
}
T result;
return Enum.TryParse<T>(value, true, out result) ? result : defaultValue;
}
编译错误:
类型
我有以下方法:
public void SetList<T>(IList<T> listINeedToStore)
{
//Store the list in instance level scope
}
我想获取listINeedToStore参数并将其存储在私有变量中,但我找不到一种方法。我尝试执行类似private IList<object> _tempVariable;的操作,然后将_tempVariable设置为listINeedToStore变量,这样以后就可以使用它来删除或添加条目。我会像_tempVariable = (IList&l
为了映射结果,我实现了密封的泛型类:
public sealed class ResultMapper<out T : Any> {
public class Ok<out T : Any>(public val value: T,
override val response: Response) : Result<T>(), ResponseResult {
override fun toString(): String = "Result.Ok{value=$valu
我在我的书中遇到了一个基本概念上的问题。我应该使用泛型创建一个方法swap();它使用泛型将位置与第一和第二位置互换。我相信我的方法是正确的,但是我把对类中的代码从T,S改为T,因为我得到了错误,并且认为这会解决这个问题,但事实并非如此。我的问题是,我现在在我的演示类中得到了大量的编译时错误,而且我找不到解决方案。
public class Pair<T>
{
private T first;
private T second;
public Pair(T firstElement, T secondElement)
{
我有两个类和一个接口
public class ExcelReader<T> extends Reader<T> implements RowColumnReader<T> {
// private final TypeToken<T> typeToken = new TypeToken<T>(getClass()) {};
// private final Type type = typeToken.getType();
/* public Type getType() {
return
我没有使用反射和通用方法的经验,这里有两种方法。我想你能理解我想做的事。
public static T GetInHeaderProperty<T>() where T : new()
{
dynamic result = new T();
result.CompanyId = ConfigurationManager.AppSettings["CompanyId"];
result.UserId = ConfigurationManager.AppSettings["UserId"];
result.Passwo
下面的build方法创建了一个TypedMemberDTO实例。
TypedMemberDTO可以包含类型化的List
Member.getDetails返回一个Object类型,我知道它将仅是运行时的2种类型之一。除了扩展Object之外,这些类型没有任何共同之处。
我想要做的是创建一个使用泛型来设置TypedMemberDTO中细节的构建方法。
该代码编译良好,运行良好,尽管我对<U>类型实际提供了什么感到有点困惑。
实际上,如果我在这里使用的是原始类型而不是<U>,那么我会实现同样的编译时好处吗?
是否有更好的方法来编写构建方法?
public class Typ
今天,当这段代码被编译时,我很惊讶:
class GenericClass<T> {
public void emptyMethod(T instance) {
// ..
}
public void print(T instance) {
System.out.println(instance);
}
}
public class Main {
public static void main(String[] args) {
GenericClass first = new Generi
我正在尝试将C#中的以下类转换为Java。
Result是一个由泛型Result<T>类扩展的非泛型类.
它们的样本用途如下:
// When we only care if the operation was successful or not.
Result result = Result.OK();
// When we also want to store a value inside the Result object.
Result<int> result = Result.OK<int>(123);
在Java中,每个类都需要在自己的
我只是想比较一下Java和C++过滤列表的速度。只是为了好玩,因为我已经看到C++有std::vector.erase(),它可以在适当的位置移除向量的元素,所以我期望它比Java的等价物快得多,下面是Java的代码:
public static void main(String[] args) {
List<Integer> ints = new ArrayList<>(100000000);
long t1, t2;
int i;
t1 = System.currentTimeMillis();
for (i = 0; i
我读过有关泛型类型的文档,我知道要使用它,但我在“读取”两个方法时遇到了问题。
我使用"toArray()“和"asList()”,但是我不知道如何编写方法解算类型。
示例1
public Iterator<E> iterator();
public Iterator<String> iterator();
示例2
public E get(int location);
public String get(int location);
示例3(这里是我不明白的地方)
public static <T> List<T> asList
我有以下字符串到枚举的转换器: public static T ParseString<T>(string stringValue) where T : struct
{
if (!string.IsNullOrWhiteSpace(stringValue))
{
stringValue = stringValue.Replace(" ", "_");
T result;
if (Enum.TryParse<T>(s
我想达到的目标是:
Type type = typeof(Entity);
var result =_unitofwork.BaseRepositoryFor<type>.createEntity(entity);
我试过方法信息和很少的例子,但不能忍受工作。
CreateEntity/deleteEntity所有后端都是通用实现的,butI需要在我的泛型方法中添加某种类型。
什么是有效的:
MyDb _db= new MyDb();
private static T entity;
private static BaseRepositoryFor<T>_dynamic
我想创建一个简单的泛型函数
void Assign<T>(out T result)
{
Type type = typeof(T);
if (type.Name == "String")
{
// result = "hello";
}
else if (type.Name == "Int32")
{
// result = 100;
}
else result = default(T);
}
用法:
int value;
string text;
Assign(value)
与类似,我决定看看是否可以将out参数从方法中提取到隐式类型的变量中,而不必定义类型。我的理想解决方案应该是这样的:
var result = LiftOutParam((out p1, out p2, out p3) => {
return CallMyMethod(i1, i2, out p1, out p2, out p3);
});
var o1 = result.Item1;
var o2 = result.Item2;
var o3 = result.Item3;
var returnValue = result.Item4;
在本例中,CallMyMethod有2个
我知道我可以调用泛型扩展方法
public static object Convert<U>(this U value)
像这样(不需要<Class1> ):
Class1Instance.Convert()
但有没有办法叫:
public static T Convert<U, T>(this U value)
where T : Class1, Interface1, new()
where U : Class1, Interface2, new()
{
/******/
}
使用Class1Instance.Convert<Cla
我在学校里用C++编码已经3年了。我两天前才开始用Java编写代码,我的问题是:
制作泛型数组是不好的做法吗?还有什么可供选择的?
我很困惑,除了做一些奇怪的事情之外,我似乎无法做一个通用数组,比如这个例子:
//Class implementing the MergeSort algorithm with generic types
// Revised by Doina January 2014
package Sorting;
import java.lang.*;
public class MergeSort {
// Wrapper method for the re
我目前正在为ASP.NET 4.5中的LINQ查询设计一个过滤器。我检索两个不同表类型的不同IQueryable。
我会这样调用我的筛选方法:
var result = new Dictionary<DateTime, MyData>();
if(x = 1)
{
var base = (from t in ctx.OldProjctStatistic
select t);
result = GetProjectData(base);
}
else {
var base = (from t in ctx.NewProjec
我需要传递Kotlin的Pair作为参数。
<argument android:name="data" app:argType="kotlin.Pair" />
e: CreateCodeFragmentDirections.kt: (16, 15): 2 type arguments expected for class Pair<out A, out B>
<argument android:name="data" app:argType="kotlin.Pair<String, String&
看一下这个简单的Java泛型示例:
class List<T> {
T head;
List<T> next;
}
class A<T> {
List<T> l;
public <T> int length() {
List<T> l = this.l;
int c = 1;
while (l.next != null) {
c++;
l = l.next;
}
在不必在其他文件中重复委托的形状的情况下,如何使用给定的已知类型文本形状声明对函数的引用?
职能:
/**
* @param {object} prev
* @param {object} next
* @param {string} name - the name of the child param of both objects to compare
*/
exports.getModification = <T> (prev:T,next:T, name:string):Modification<T> =>
{
const getIsCha
考虑这两个实例函数:
public <T> void f1 (List<? extends Object> a) {
System.out.println(a);
}
public void f2 (<? extends Object> a) {
System.out.println(a);
}
第一个函数被接受,第二个函数得到一个错误标记Syntax error on token "(", Type expected after this token。
我不明白为什么。有人能帮我吗?
编辑:让我重新表述所有。我有
我正在读"C# in a Nutshell“,我来到了高级C#特性的第一个主题:代表。
这段简单的代码可以正常工作
using System;
namespace prueba
{
class Program
{
public delegate int Transformer(int x);
static void Main(string[] args)
{
Transformer t = Square;
t += Cube;
int result = t(3);
Transform(5, Sq