小编Joc*_*ken的帖子

Java泛型2向引用

我试图在java中创建两个相互包含的类之间的泛型关系.这些对象基本上形成一个alernating层树.到目前为止,我发现最接近的SO问题是:泛型的Java泛型,它对我的​​问题很接近并且有些帮助,但仍然不同,我想要额外的指导.这是情况,或者更确切地说,我希望它是什么:

abstract class Group<I extends Item<Group<I>>>{
     private List<I> items;
     public List<I> getItems(){...}
     public void setItems(List<I> items){...}
}

abstract class Item<G extends Group<Item<G>>>{
     private List<G> subGroups;
     public List<G> getSubGroups(){...}
     public void setSubGroups(List<G> subGroups){...}
}
Run Code Online (Sandbox Code Playgroud)

除了吸气剂和制定者之外,该类的某些方面使它们彼此明显不同,但包含应该遵循这样的方式.这背后的原因是我想强制执行,如果我有实现类,他们必须表现如下:

class AGroup extends Group<AItem>{...} //works
class AItem extends Item<AGroup>{...} //works
class BGroup extends Group<BItem>{...} //works
class BItem extends Item<BGroup>{...} //works
class MixedGroup extends Group<AItem>{...} //fails since AItem does
                                           //not extend Item<MixedGroup>
Run Code Online (Sandbox Code Playgroud)

到目前为止,编译器很好用

abstract class Group<I extends Item<Group<I>>>{
     private List<I> items;
     public List<I> getItems(){...}
     public …
Run Code Online (Sandbox Code Playgroud)

java generics

6
推荐指数
1
解决办法
352
查看次数

可以在 postgres 中创建自定义类型而不用 C 编写函数吗?

我正在尝试创建一种类型来存储颜色十六进制,最好以字节形式存储。我按照 postgres 文档中的所有说明进行操作:http://www.postgresql.org/docs/9.3/static/sql-createtype.html 并发现它说的部分CREATE FUNCTION my_box_in_function(cstring) RETURNS box AS ... ;......令人不安。省略号里写什么?事实证明这是合理的,因为我找不到任何创建简单数据类型而不用 C 编写的自定义 PG 函数的示例。我最好的尝试是:

CREATE TYPE color;
CREATE FUNCTION color_in(cstring) RETURNS color AS $$
    BEGIN
        RETURN decode($1::text, 'hex')::color;
    END;
$$ LANGUAGE PLPGSQL IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION color_out(color) RETURNS cstring AS $$
    BEGIN
        RETURN encode($1::bytea, 'hex')::text;
    END;
$$ LANGUAGE PLPGSQL IMMUTABLE RETURNS NULL ON NULL INPUT;

CREATE TYPE color (
    INTERNALLENGTH = 3,
    LIKE = bytea,
    INPUT = color_in,
    OUTPUT = color_out
); …
Run Code Online (Sandbox Code Playgroud)

postgresql postgresql-9.3

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

标签 统计

generics ×1

java ×1

postgresql ×1

postgresql-9.3 ×1