小编das*_*ght的帖子

IEnumerable的C#泛型约束

public interface I {
}
public class A : I {
}
Run Code Online (Sandbox Code Playgroud)

编译器显式IEnumerable<A>IEnumerable<I>:

public void Test() {
    IEnumerable<A> a = new List<A>();
    new List<I>().AddRange(a);
}
Run Code Online (Sandbox Code Playgroud)

但是通过通用约束,我们得到:

public void Test<T>() where T : I {
    IEnumerable<T> t = new List<T>();
    new List<I>().AddRange(t);
}
                          ^^^
Argument 1: cannot convert from 'IEnumerable<T>' to 'IEnumerable<I>'
Run Code Online (Sandbox Code Playgroud)

但是,编译很好.

public void Test<T>(T t) where T : I {
    new List<I>().Add(t);
}
Run Code Online (Sandbox Code Playgroud)

因此问题是:这是一个正确的行为,还是一个错误?

c# generics

8
推荐指数
1
解决办法
1496
查看次数

NSImage无法扩展

我正在开发一个快速应用程序,其中我有一个方法应该将@ 2x图像重新缩放为常规图像.问题是它没有:(

为什么?

-(BOOL)createNormalImage:(NSString*)inputRetinaImagePath {

    NSImage *inputRetinaImage = [[NSImage alloc] initWithContentsOfFile:inputRetinaImagePath];



    NSSize size = NSZeroSize;
    size.width = inputRetinaImage.size.width*0.5;
    size.height = inputRetinaImage.size.height*0.5;

    [inputRetinaImage setSize:size];


    NSLog(@"%f",inputRetinaImage.size.height);


    NSBitmapImageRep *imgRep = [[inputRetinaImage representations] objectAtIndex: 0];

    NSData *data = [imgRep representationUsingType: NSPNGFileType properties: nil];

    NSString *outputFilePath = [[inputRetinaImagePath substringToIndex:inputRetinaImagePath.length - 7] stringByAppendingString:@".png"];

    NSLog([@"Normal version file path: " stringByAppendingString:outputFilePath]);
    [data writeToFile:outputFilePath atomically: NO];
    return true;
}
Run Code Online (Sandbox Code Playgroud)

macos cocoa objective-c nsimage

8
推荐指数
1
解决办法
4574
查看次数

我可以将两个UIColor混合在一起吗?

我有colorA [UIColor blueColor],和colorB,它是[UIColor redColor].这有可能让我呈现一个[UIColor purple]?如何实施?谢谢.

objective-c uicolor

8
推荐指数
2
解决办法
7357
查看次数

即使超类实现相同的接口,在子类中实现接口也有任何好处

当我看到宣言时 ArrayList

class ArrayList<E> extends AbstractList<E>
    implements List<E>, RandomAccess, Cloneable, java.io.Serializable
Run Code Online (Sandbox Code Playgroud)

List即使ArrayList超类AbstractList实现相同的List接口,它也会实现接口.

abstract class AbstractList<E> extends AbstractCollection<E> implements List<E>
Run Code Online (Sandbox Code Playgroud)

类似的声明上可以找到HashMap,LinkedHashMap也声明.

在此输入图像描述

在声明中LinkedHashMap,它Map仅实现接口,而不是其超类实现的其他接口HashMap.

因此,拥有此类声明可能会带来一些好处.

java oop

8
推荐指数
1
解决办法
192
查看次数

如何在iOS中的两个UIColors之间获得中间色

如果我给两种颜色

UIColor *color1 = [UIColor blackColor];
UIColor *color2 = [UIColor whiteColor];
Run Code Online (Sandbox Code Playgroud)

我应该得到grayColor,我该如何实现呢?

objective-c uicolor ios

8
推荐指数
1
解决办法
1170
查看次数

循环和一半控制

我们什么时候使用循环半?此外,是否应该有人简要阐述如何编写代码?

java loops break while-loop

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

MongoDB/Java SDK:查询具有数组值的元素

我是MongoDB及其Java ... SDK的新手?API?我有一个非常简单的问题,但我找不到满意的答案.

假设我有一组实例,如:

{
    "_id": {
        "$oid": "5156171e5d451c136236e738"
    },
    "_types": [
        "Sample"
    ],
    "last_z": {
        "$date": "2012-12-30T09:12:12.250Z"
    },
    "last": {
        "$date": "2012-12-30T04:12:12.250Z"
    },
    "section": "5156171e5d451c136236e70f",
    "s_mac": "AA:AA:AA:AA:AA:AA",
    "_cls": "Sample",
}
Run Code Online (Sandbox Code Playgroud)

我有一个硬编码的Java列表:

static List<String> MAC_LIST = Arrays.asList("90:27:E4:0E:3D:D2", "A8:26:D9:E6:1D:8B");
Run Code Online (Sandbox Code Playgroud)

我想知道的是如何查询MongoDB,以便它将为我提供其s_mac字段具有MAC_LIST列表中显示值的所有对象.

我猜我应该使用$ in运算符,但我不知道如何将它转换为Java代码.

任何提示或链接到页面,$in通过Java SDK 解释运算符的使用将不胜感激!

java list mongodb

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

使用Swift的键值编程(KVP)

在使用Cocoa的Objective-C中,通过使用键值编程(KVP),可以在没有显式循环的情况下完成许多任务.例如,我可以使用一行代码找到数组中的最大数字:

NSNumber * max = [numbers valueForKeyPath:@"@max.intValue"];
Run Code Online (Sandbox Code Playgroud)

我如何用swift做同样的事情?数组似乎不支持valueForKeyPath方法.

swift

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

难以理解Java规范

阅读Java SE规范中的参考类型转换时:

给定编译时引用类型S(源)和编译时引用类型T(目标),如果由于以下规则而没有发生编译时错误,则从S到T存在转换转换.

我一直在寻找以下条件:

如果S是类类型:如果T是类类型,则为|S| <: |T|或者|T| <: |S|.否则,发生编译时错误.

此外,如果存在T的超类型X和S的超类型Y,使得X和Y都可证明是不同的参数化类型(§4.5),并且X和Y的擦除是相同的,则编译时发生错误.

谁能举个例子说明这种情况?

编辑:

有关该文章的进一步说明,请参阅此链接中的第5.5.1

java specifications

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

如何在Java和swift中将long转换为int?

我试图将这个Java代码转换为swift 2.0

long checksumValue = 4253726258L;
int liCrc32 = (int)checksumValue;
System.out.println("liCrc32" + liCrc32)
Run Code Online (Sandbox Code Playgroud)

LiCrc32等于-41241038

我的版本很快

let int64: Int64 = 4253726258
let a:Int = Int(int64)
Run Code Online (Sandbox Code Playgroud)

a返回我4253726258

我不明白为什么在Java中价值是负面的?

java swift

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

标签 统计

java ×5

objective-c ×3

swift ×2

uicolor ×2

break ×1

c# ×1

cocoa ×1

generics ×1

ios ×1

list ×1

loops ×1

macos ×1

mongodb ×1

nsimage ×1

oop ×1

specifications ×1

while-loop ×1