我正在练习仿制药,我做了以下几件事。
创建了一个名为man的类,如下所示。
public class Man{
int hands=2;
int legs=2;
boolean alive;
public Man(boolean b) {
// TODO Auto-generated constructor stub
alive=b;
}
}
创建一个名为person的类
public class Person<Man> {
Man p;
String name;
我是Java泛型的新手,但是如果我能够访问泛型类类型的成员,我可以用几种方法解决一堆任务。首先,我有几种类型的数据,它们都需要类似的处理。
是否有一种方法可以访问泛型类型的成员,如下面的玩具示例所示?
public void <O> someMethod(AbstractData d, Set<String> filter) {
List<O> list = d.getKeys();
for (O o : list) {
if(filter.contains(o.id)) { // < cannot access mem
如何为泛型类型创建扩展方法?
以下代码返回错误
扩展方法只能在非泛型、非嵌套静态类中声明。
代码:
public static class PagedList<T> where T : BaseEntity
{
public static IEnumerable<T> ToPagedList(this IEnumerable<T> source, int pageNumber = 0, int pageSize = 5)
{
return source.Skip(pageNumber * pageSize).Take(
我有一个抽象的Person类,它有三个子类:Admin、Employee和Student。只有一个管理对象。
我还有一个类,它的“名称”是Statics,并保存我需要的所有公共数据,如下所示:
public class Statics {
private static Person currentLoginUser;
private static ArrayList<Person> people = new ArrayList<>();
private static ArrayList<Student> students = new ArrayList
我想为List类型创建一个扩展类,这样用户就可以
ListObject.AddDistinct("value")
我希望该方法适用于所有类型的列表,因此:
List(Of Integer)
List(Of String)
等等。我的扩展是
Module ListsExtensions
<Extension()>
Public Sub AddDistinct(ByRef ls As List(Of Type), ByVal obj As Type)
If Not ls.Contains(obj) Then ls.Add(obj)
End Sub
End Mo
我想为一些泛型类创建很多扩展方法,例如for
public class SimpleLinkedList<T> where T:IComparable
我已经开始创建这样的方法:
public static class LinkedListExtensions
{
public static T[] ToArray<T>(this SimpleLinkedList<T> simpleLinkedList) where T:IComparable
{
//// code
}
}
但是当我尝试像这样使LinkedListEx
我有一些复制的代码,因此我希望创建一个通用方法。我有一个常用的名为extension的方法,我想在这个方法中使用。通常,如果不是扩展方法,我会创建一个接口,将泛型参数类限制在这个接口上,然后您就可以使用该通用方法了。但这与扩展方法不兼容。
以下是我的通用方法:
public ActionConfirmation<string> CreateUpdateEntity<TExternalEntity, TQuickbooksEntity>(TExternalEntity entity, CompanyPreferencesFinancialsSystemCommon pre
我无法理解下面的泛型代码是做什么的。我对泛型是个新手,所以我很感激我能得到的所有帮助!
Public abstract class AMetadata< C extends CMetadata, P extends PMetadata, R extends RMetadata> extends GEntityMetada<C>
{
// class does stuff here
}
有人能解释一下这些类是如何相关的吗?
Pet<String> pet = Dog<String>();给了我一个invalid_assignment错误。
class Pet<T> {
T name;
}
class Dog<T> extends Pet {}
class Cat<T> extends Pet {}
main() {
Pet<String> pet = Dog<String>();
List<Pet> pets = List<Dog>();
}
List<Pet> pets =
我有两节课
第一个是员工
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
}
第二个是合同
public class Contract
{
public int Id { get; set; }
public string Desc { get; set; }
}
我需要存储一些类型的文件到每个合同和员工(一个员工可以有0个或更多的文件附件(他的简历,扫描的身份文件,等等…)一份合同可以附加0到多个文件(签署的合同,扫描的合同附件)
我的
有些内置方法对我不起作用,我正在使用旧版本的.NetFramework作为我的应用程序,它没有一些新的方法。因此,我正在尝试创建覆盖内置方法的扩展方法。但我正面临着一些问题。以下是代码:
using System;
using System.IO;
using System.Net;
using System.Xml;
using System.Text;
using System.Collections.Generic;
namespace API{
public static class Retrive
{
// some variables
我想创建一个泛型ThreadWorker类,它的泛型类型<T>接受扩展<String>类型的Collection类的类。
我试过:
public class Worker <T extends Collections<String>> extends SwingWorker<VectorDetails , String>
但我发现了一个错误:
The type Collections is not generic; it cannot be parameterized with arguments <String>
我正在尝试在Java语言中扩展AbstractSequentialList类。该类实现了一个需要创建ListIterator方法的接口。我已经创建了下面的方法来简单地开始,但我收到警告消息说:
ListIterator is a raw type. References to generic type ListIterator<E> should be parameterized.
这是什么意思?当我运行这段代码时,我有点不明白为什么这会给我一个错误。
public ListIterator listIterator(int i){
ListIterator
我的目标是拥有一个抽象的Game类,它的构造函数接受一个适合于派生Game类的GameEngine。这个抽象的Game类将实现适用于所有Game实现的通用方法。您可以将GameEngine看作是一种策略模式,Game将方法委托给该模式。
因此,在使用Game创建GameFactory时,我不关心工厂返回的Game实现是什么。我只想确保Game实现是用适当的GameEngine实现构造的。但是,如果我只是从工厂返回原始类型的Game,我当然会收到Raw use of parameterized class 'Game'警告。
此外,理想情况下,GameFactory.create
问题1:我对这些代码有点困惑:
public class MyClass1 <E extends Enum<?>> {
// ...
}
public class MyClass2 <E extends Enum<E>> {
// ...
}
MyClass1和MyClass2的区别是什么,这三种不同的E意味着什么?
问题2:来自
这是所有Java语言枚举类型的公共基类。
但是不是所有Enum类型的Enum<E>的公共基类吗?
问题3:现在我有一节课:
public class MyClass<E ex
我想创建一个中间抽象类来扩展AsyncTask,以便在紧密相关的类之间共享代码。真正的具体类将扩展中间抽象类来定义细节。
对于AsyncTask,我需要指定参数、进度和结果。但是,在中间层,我没有任何实现细节。那么,我应该如何保留具体类的详细定义呢?
//实现共享代码的中间层
public class SiteAsyncTask extends AsyncTask<?, ?, ?>{
//混凝土层
public class GetSiteAsyncTask extends SiteAsyncTask<Void, Void, Site> {
public class L
我需要为数组类创建一个扩展方法,但是这个扩展方法必须能够接受许多数据类型,所以它也必须是泛型的。
在下面的代码中,扩展方法只接受byte数据类型。例如,我希望它也能接受ushort和uint。我认为最好的方法是在这里创建一个泛型类型。但是我如何使用数组来做到这一点呢?
谢谢!
public static class MyExtensions
{
public static int GetLastIndex(this byte[] buffer)
{
return buffer.GetUpperBound(0);
}
}
我对.NET C#开发相当陌生,最近开始将LINQ to SQL用于我的大部分数据访问层。不幸的是,我一直在努力管理我的DataContext,这样我就不会得到可怕的异常,因为实体要么没有附加到上下文,要么试图在实体附加到一个上下文的同时将它附加到另一个上下文。经过多次阅读,我相信对于我的应用程序来说,最好的解决方案是让DataContext在我的应用程序的整个过程中都是打开的。
简而言之,我正在使用Repository模式为我的上下文管理的所有实体实现基本的CRUD操作(即创建、读取、更新和销毁)。我的存储库实现包括在下面。除了存储库之外,我还为每个具有更具体数据访问方法(即Customer
我正在用Room实现ViewModel数据库。一切都很好。但我的要求是,我希望使用ViewModel为AndroidViewModelFactory提供一些依赖。我能够创建实现ViewModelFactory的ViewModelProvider.Factory类。我将一个普通字符串作为依赖项传递给ViewModel。工厂类的代码是
public class TestViewModelFactory implements ViewModelProvider.Factory{
private static final String DEFAULT_LIMIT = "4";
我为我的MVP - PRISM WPF应用程序创建了一个BaseView。现在,出于某种原因,我们想在BaseView中将_presenter作为模板字段。
在前面,我将xaml表示视图设置为
<base:BaseView xamlns:base="clr address of the dll which had BaseView" >
</base:BaseView>
现在,既然我已经将BaseView更改为BaseView<TPresenter>,,那么我该如何编写Xaml呢?
我正在为一个棋盘游戏平台创建一个小框架,我已经创建了以下接口,以便尽可能通用于我将在此框架内放置的游戏。
我想使用Java泛型,以便每个实现不仅以适当的OO方式实现各自的接口,而且还具有针对游戏特定需求的特定具体类可访问和强类型(无需强制转换等)。
例如,CheckersPlayer将扩展Player ( CheckersPlayerImpl实现CheckersPlayer),CheckersGame将扩展Game ( CheckersGameImpl实现CheckersGame),CheckersGameTable扩展<代码>D9</代码>等等。
public int
我目前正在从事一个项目,其中我的数据库有非常多的表(Approx 60总计)。我正在创建数据库帮助类,它将充当数据库的编写者/读者。我的写方法的例子是:
public static void executeInsertInto(final Context context, final UserData passedObject){
//Generate a realm object from the context
Realm realm = Realm.getInstance(context);
realm.executeTransaction(new Realm.T
我正在尝试用java做以下事情:
public class ClassName<E> extends E
然而,这样做,我得到了一个:
error: unexpected type
是不是简单地说,java不能做到这一点?-如果是这样的话,我将如何实现这一效果?它在C++中完美地工作,使用模板,类似于:
template<typename E>
class ClassName: public E
我真正想要实现的是,能够以这种方式将类链接在一起,以达到java中多重继承的效果。
今天我在Java多态性中迷失了方向。我做了一些我认为是不可能的事情。也就是说,我有扩展的接口。
我已经创建了空接口:
public interface Figure {}
现在没什么新鲜事。然后我创建了参数化的类Board,它扩展了我的接口!
public class Board< T extends Figure > {
T[][] board;
}
我认为这是不可能的!尽管如此,我还是走得更远,因为我不理解。
我已经创建了实现图形接口的类:
public class Cross implements Figure{}
令我惊讶的是,我能够做到:
Board b = n
我已经延迟了一个数组列表,我希望它是一个泛型类型。
ArrayList<T> locker = new ArrayList<T>();
然后我有一个方法add,它也需要是泛型的。
public <T extends Gear> boolean add(Gear item)
{
locker.add(item);// this is giving me compile error => no suitable method found for add(Gear)
return true;
}
我该如何修复它,我对泛型类型也是个新手。
Im应该创建一个返回任何列表的最大值的方法,我想这是一个通用的方法。但是我不明白参数,有人能解释一下吗?我还做了一个迭代器,我将在解决方案中使用这个迭代器来运行列表,但是当我创建迭代器的一个实例时,这个方法会给我以下错误:"#nameofclass不能从静态上下文中引用“,那么我如何在这里创建一个实例?(由于某种原因它应该是静态的)我会感激任何帮助!
public static <T> int maks(List<T> list, Comparator<? super T> c)
{
// return max in a list
}
我想扩展我的BinaryTree类,以便只接受整型参数,并且可以重用代码。
public class BinaryTree<T extends Comparable<T>>
{/*code omitted for convenience*/}
public class BinaryTreeInt<T extends Integer> extends BinaryTree<T>
{/*code omitted for convenience*/}
我在编译时遇到以下错误-
BinaryTreeInt.java:1: type param