我正在创建一个类,它应该能够与任何类型的数组(float,int等)一起使用,所以这里有一个方法:
// T extends Number
public synchronized T[] average() {
Number[] ret = new Number[queue[0].length];
for (int i = 0; i < ret.length; ++i) {
for (int j = 0; j < size; ++j) {
ret[i] += queue[j][i]; // WTF ERROR?!
}
ret[i] /= size; // WTF ERROR?!
}
return (T[])ret;
}
Run Code Online (Sandbox Code Playgroud)
除此之外不会编译因为"Number"没有实现"+ ="或"/ ="运算符.更糟糕的是,java的Number类甚至没有实现最基本的运算符,如"+"或" - "!如果java不允许我编译它,我怎么能创建一个返回Numbers数组平均值的方法,因为它认为数字不能被添加?!?!
在Kotlin类中实现接口时:
当我在ClassName上按Alt + Enter时,我可以让IDE通过"实施成员"添加界面的功能.
令人讨厌的是,在Kotlin中,这些函数被添加到类的顶部.我希望它们在类的末尾添加(就像在Java中一样).
我怎样才能做到这一点?
我正在研究类和接口。我有一件事情让我很恼火,这是我第一次处理这类事情,所以请耐心等待。
假设我有这个界面:
// IFoo.d.ts
export default interface IFoo {
foo: string;
bar: number;
}
Run Code Online (Sandbox Code Playgroud)
当我在课堂上实现它时,我会执行以下操作:
// FooModel.ts
import IFoo from './IFoo';
export default class FooModel implements IFoo {
foo: string;
bar: number;
constructor({ foo, bar }: IFoo = { foo: 'hello', bar: 1 }) {
this.foo = foo;
}
}
Run Code Online (Sandbox Code Playgroud)
为什么我必须再次实现相同的属性?
这与复制粘贴基本相同,但有严格的约定。另外,我必须分别键入foo6bar次,才能根据接口正确分配默认可选值。
还有更有效的方法来做到这一点吗?
编辑; 我正在努力实现以下目标:
具有属性的类,其中的属性可用于打字稿的检查,如下所示: 接口
export default interface FooDTO {
foo: string;
bar: number;
}
Run Code Online (Sandbox Code Playgroud)
模型
export interface IFoo {
foo: string;
bar: …Run Code Online (Sandbox Code Playgroud) 我实现Map<V,K>和Collection<V>接口在一类,但remove(Object)发生法两种接口,therfore日食表明了我的一些错误.返回类型是不同的,一个返回boolean,另一个V但这似乎并不重要.
有没有办法告诉java/eclipse哪个方法实际被覆盖?
编辑:我有一个所有值必须实现的接口,它使用getKey()方法提供值,从而可以为地图编写添加函数.但似乎没有办法让这一个类同时看作地图和集合?
我想实现一个在scala中使用泛型的java方法(2.9.2).但是我失败了......
Java接口方法:
public <T extends Number> void setAttribute(Key<T> key, Number value);
Run Code Online (Sandbox Code Playgroud)
想要实现该方法的Scala代码:
def setAttribute[T <: Number](key: Key[T], value: Number) = {
setAttributeLocal(key, value) }
private def setAttributeLocal[T](key: Key[T], value: T) = {
val stringValue = ConvertUtils.convert(value, classOf[String]).asInstanceOf[String]
session = session + (key.getValue() -> stringValue)
}
Run Code Online (Sandbox Code Playgroud)
关键看起来像:
public class Key<T>
Run Code Online (Sandbox Code Playgroud)
但这不编译.
[error] found : mypackage.Key[T]
[error] required: mypackage.Key[java.lang.Number]
[error] Note: T <: java.lang.Number, but Java-defined class Key is invariant in type T.
[error] You may wish to investigate a wildcard type …Run Code Online (Sandbox Code Playgroud) 使用SQLiteDatabase作为Closeable时出现此错误
我有一个示例项目来重新创建它:
https://github.com/blundell/SQLDatabaseError
使用扩展SQLiteOpenHelper的类:
public class DatabaseHelper extends SQLiteOpenHelper {
....
public void openAndCloseDatabase() {
SQLiteDatabase database = getWritableDatabase();
close(database);
}
private void close(Closeable database) {
try {
if (database != null) {
database.close();
}
} catch (Exception e) {
Log.e("Error", "Oh no!", e);
}
}
}
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪:
12-14 12:23:43.719: E/AndroidRuntime(5179): FATAL EXCEPTION: main
12-14 12:23:43.719: E/AndroidRuntime(5179): java.lang.IncompatibleClassChangeError: interface not implemented
12-14 12:23:43.719: E/AndroidRuntime(5179): at com.blundell.sqldatabasecursorerror.DatabaseHelper.close(DatabaseHelper.java:35)
12-14 12:23:43.719: E/AndroidRuntime(5179): at com.blundell.sqldatabasecursorerror.DatabaseHelper.openAndCloseDatabase(DatabaseHelper.java:29)
12-14 12:23:43.719: E/AndroidRuntime(5179): …Run Code Online (Sandbox Code Playgroud) 如果我扩展一个实现 Serialized 的类,我是否需要该类也实现 Serializable?
例如,如果我有,
public class classToBeExtended implements Serializable
Run Code Online (Sandbox Code Playgroud)
那么这样就够了吗?
public class classThatWillExtend extends classToExtended
Run Code Online (Sandbox Code Playgroud)
或者我需要这样做吗?
public class classThatWillExtend extends classToExtended implements Serializable
Run Code Online (Sandbox Code Playgroud) 例如,WCF通道(通过ChannelFactory创建)如何实现ICommunicationObject,但不公开Close()方法,除非您将代理转换为ICommunicationObject?那有意义吗?
我在今天回家的路上想到了这一点,无法在脑海中弄明白.也许我问的是错误的问题?也许我问一个愚蠢的问题?:)
这是一种忍者伎俩吗?
我希望一个对象可以比较(在这种情况下在TreeSet中使用它).
我的对象有一个名称字段,我希望按字母顺序排序.
我首先想到我可以使用字符串的unicode值并简单地做一个减法,但是然后AA会在Ab之后...例如...
这是我开始的方式:
public final class MyObject implements Comparable<MyObject> {
private String name;
public MyObject(String name) {
this.name = name;
}
public String name() {
return name;
}
@Override
public int compareTo(MyObject otherObject) {
return WHAT DO I PUT HERE ?;
}
}
Run Code Online (Sandbox Code Playgroud)
感谢那些愿意帮助的人,祝你有个美好的一天!
I am creating a game where objects implement interfaces for animations. I have a parent interface for the animations. Here is a shortened version:
public interface Animates<S extends Animator> {
S createAnimator(long animationTime);
}
Run Code Online (Sandbox Code Playgroud)
In addition, I have multiple interfaces that extend this interface. Two examples:
public interface AnimatesPaint extends Animates<PaintAnimator> {
PaintAnimator createPaintAnimator(long animationTime);
default PaintAnimator createAnimator(long animationTime) {
return createPaintAnimator(animationTime);
}
}
Run Code Online (Sandbox Code Playgroud)
and
public interface AnimatesPosition extends Animates<PositionAnimator> {
PositionAnimator createPositionAnimator(long animationTime);
@Override
default PositionAnimator createAnimator(long animationTime) { …Run Code Online (Sandbox Code Playgroud) implements ×10
java ×7
interface ×4
class ×2
add ×1
android ×1
collections ×1
comparable ×1
extends ×1
generics ×1
kotlin ×1
map ×1
methods ×1
numbers ×1
operators ×1
overriding ×1
scala ×1
serializable ×1
typescript ×1
wcf ×1