小编mic*_*sza的帖子

Java泛型不兼容的类型(不存在类型变量T的实例)

这基本上是我对Java泛型类型的第一次触摸,我无法弄清楚下面这段代码有什么问题.

我有一个Helper带有静态函数inRangeusng泛型类型的辅助类,它应该返回一个输入列表中的对象列表,这些列表range位于索引周围的某个对象周围index(我还没有测试过,如果它正常工作,这里不是问题,或者不):

public class Helper {
public static <T> List<T> inRange(List<T> list, int index, int range) {
    List<T> res = new ArrayList<T>();
    int N = list.size();
    assert(index < N);
    if (N == 0)
        return res;
    int i, j;

    /* right range */
    i = (index + 1) % N;
    j = 0;
    while (i != index && j < range) {
        res.add(list.get(i));
        i = (i + 1) % N;
        j++;
    }

    /* …
Run Code Online (Sandbox Code Playgroud)

java generics

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

Django Admin,使用自定义函数排序

如何通过一些简单的自定义方法对 Django admin 中的列进行排序?
(我得到的所有答案都是通过使用,annotate但我不知道如何使用它)。

假设模型

class Shots(models.Model):    
    hits = models.PositiveIntegerField()
    all = models.PositiveIntegerField()
Run Code Online (Sandbox Code Playgroud)

在管理站点中,我想按hits to all比例排序:

class ShotAdmin(admin.ModelAdmin):
    list_display = ['ratio']

    def ratio(self, obj):
        return obj.hits / obj.all * 100
Run Code Online (Sandbox Code Playgroud)

我知道这ratio不是 DB 中的一个字段,因此简单的ratio.admin_order_field = 'ratio'行不通,我需要以某种方式将它附加为一个字段,但我不知道如何。

python sorting django django-admin

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

C Cmake 设置 - 对 pow() 的未定义引用(尽管 -lm)

我正在尝试使用以下内容构建一个项目(使用 CLion)CMakeLists.txt

cmake_minimum_required(VERSION 3.6)
project(alfa_1)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c11 -Wall -Wextra -lm")

set(SOURCE_FILES
        src/foo.h
        src/foo.c
        src/bar.h
        src/bar.c
        src/parser.h
        src/parser.c)

add_executable(alfa_1 ${SOURCE_FILES})
Run Code Online (Sandbox Code Playgroud)

foo.c我使用pow()函数 from math.h,我包含在foo.h. 并且显然foo.h包含在foo.c. 在bar.c我有main那是什么都不做。现在,像这样的标准命令行编译

gcc -o bar bar.c bar.h foo.h foo.c -lm
Run Code Online (Sandbox Code Playgroud)

工作正常,但构建项目会产生对pow. 可以看到我-lmCmakeLists.txt文件中包含了标志,所以我不明白为什么这个链接部分在这里不起作用

cmake

5
推荐指数
1
解决办法
3522
查看次数

为什么在 Smalltalk 中将集合添加到自身会爆炸?

我想知道为什么这不在 GNU Smalltalk 中终止:

s := Set new. s add: s

理论上,s应该只是一个包含空集的集合。但是执行它只会永远循环,炸毁堆。

有趣的是, ((s := Set with: 4 with: 5 with: 6) add: s) size.终止并计算为 4。

collections smalltalk gnu-smalltalk

5
推荐指数
1
解决办法
517
查看次数