小编Ali*_*can的帖子

Java泛型中'&'和','有什么区别?

在阅读关于泛型的Java官方教程时,我发现你可以限制类型参数(在本例中是T)用'and'运算符(&)扩展类和/或更多接口,如下所示:

<T extends MyClass & Serializable>
Run Code Online (Sandbox Code Playgroud)

我替换了&with ,(错误地仍然有效,并带有一个小警告).

我的问题是,这两者之间有什么区别:

<T extends MyClass & Serializable>
<T extends MyClass , Serializable> // here is with comma
Run Code Online (Sandbox Code Playgroud)

和示例方法:

static <T extends MyClass & Serializable> ArrayList<T> fromArrayToCollection(T[] a) {
    ArrayList<T> arr = new ArrayList<T>();

    for (T o : a) {
        arr.add(o); // Correct
    }
    return arr;
}
Run Code Online (Sandbox Code Playgroud)

java generics

110
推荐指数
1
解决办法
3160
查看次数

存储库模式与DAL

它们是一样的吗?刚看完Rob Connery的店面教程,他们似乎是类似的技术.我的意思是,当我实现一个DAL对象时,我有GetStuff,Add/Delete等方法,我总是首先编写接口,这样我以后就可以切换db了.

我混淆了什么吗?

asp.net-mvc data-access-layer

92
推荐指数
5
解决办法
3万
查看次数

保证金自动意味着什么?

我检查了MDN,看看有什么方法可以获得margin属性的自动值,它说:"auto被替换为一些合适的值,例如它可以用于块的居中."

但是什么是合适的价值,适合什么?

我尝试了一些实验,我看到如果我添加margin-left:auto,容器会向右移动(就像浮动到右边):

#container {
    background: red;
    width: 120px;
    margin-left: auto;
}
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/sph2j6jx/

这是否意味着添加保证金自动实际上就像"占用所有可用空间"?当你添加左右边距时,它会使div居中,因为它试图从左边和右边占据所有空间?

html css margin

23
推荐指数
3
解决办法
1万
查看次数

Play Framework:使用JPA存储Map,键值的解决方案

我在Play中使用JPA如何存储HashMap将近一周.存储所有其他属性,只有HashMap具有零元素(为空).

public class ImageModel extends Model {

 @Id
 private String id;
 private String url;

 @ElementCollection(targetClass = java.lang.String.class)
 @MapKeyClass(java.lang.String.class)
 private Map<String,String> tags = new HashMap<>();

 // the method for adding keys and values to the HashMap
 public void add(String key, String value){
    tags.put(key,value);
    this.save();
}

}
Run Code Online (Sandbox Code Playgroud)

我还尝试用以下内容进行注释:

@ElementCollection(fetch=FetchType.LAZY)
Run Code Online (Sandbox Code Playgroud)

所以,我现在唯一的猜测是我没有配置好Play.(我必须说我正在使用Play2并且没有配置任何东西,除了在数据库设置前删除"#"(注释标记)).

On Play文档说:" Play 2.0中没有内置的JPA实现 ".可能是这样吗?

更新:我做了一些研究并说可能是因为我正在使用Play-H2的默认数据库.我尝试使用MySQL - 视频如何做到这一点,但它再次只保存了id和url.我查看了MySQL数据库和表,该类的名称只有2个属性(id和url),没有我的HashMap的痕迹.

Update2:添加了一个打印屏幕 - 带有数据库查询.

Update3:Play中的示例"computer-database-jpa"工作正常,因此JPA应该没问题,但该示例没有使用Map(HashMap).我甚至用EclipseLink改变了hibernate,但仍然没有工作.:(虽然,所有基本类型属性都在数据库中)

jpa java-ee playframework playframework-2.0

13
推荐指数
1
解决办法
3119
查看次数

为什么需要一个消息队列来与Web套接字聊天?

我在互联网上看到很多使用网络套接字和RabbitMQ(https://github.com/videlalvaro/rabbitmq-chat)聊天的例子,但我不明白为什么它需要一个聊天应用程序的消息队列.

为什么不能通过Web套接字将消息从浏览器发送到服务器,然后服务器使用广播方法再次使用Web套接字将该消息广播到其余的活动浏览器?(也许我错过了什么)

伪代码示例(使用socket.io):

// client (browser)
socket.emit("message","my great message that will be received by all"


// server (any server can be, but let's just say that it is also written in JavaScript
socket.on("message", function(msg) {
  socket.broadcast.emit(data);
});

// the rest of the browsers
socket.on("message", function(msg) {
  // display on the screen the message 
});
Run Code Online (Sandbox Code Playgroud)

message-queue rabbitmq socket.io

6
推荐指数
2
解决办法
5429
查看次数

如果我没有更改状态的引用,为什么 React 会调用渲染函数?

那么为什么 React 调用会在这种情况下渲染:

class MyComponent extends React.Component {
 constructor(props) {
  this.state = {
   user: { name: 'john' },
  };
 }

 render() {
  return (
   <div>
    Name: {this.state.user.name}
    <button onClick={() => {

     const user = this.state.user;
     user.name = 'Michael';

     // this works, also this.setState({}) with empty json works too
     this.setState({ user });  
    }}> Change name </button> 
   </div>);
 }
Run Code Online (Sandbox Code Playgroud)

我所期望的是 React 不会检测到任何更改,并且为了使上述代码能够复制用户对象,以便 React 检测到更改,如下所示:

const user = {...this.state.user}; // a new copy of object, so new refference
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

state reactjs

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

如何通知List组件一个项目已更改大小?

我想使用react-virtualized呈现项目列表,但是有些项目可能会改变大小.

我添加了一个演示,其中每个项目都有一个按钮,当有人点击按钮时,项目需要展开并推送下面的项目:https: //plnkr.co/edit/GG2bSIC5M1Gj7BR1pOii

用例类似于facebook帖子,当有人评论它会扩展帖子并推动其他帖子更低.

ReactDOM.render(
<List
className='List'
autoHeight
width={300}
height={400}
rowCount={list.length}
rowHeight={30}
rowRenderer={
  ({ index, isScrolling, key, style }) => (
    <div
      className='Row'
      key={key}
      style={style}
    >
      {list[index]}
      <Expander />  /* contains the button, which when click it will expand more text*/
    </div>
  )
}
/>,
document.getElementById('example')
Run Code Online (Sandbox Code Playgroud)

有没有办法实现这个目标?

UPDATE

我意识到必须有一种方法来强制List更新项目并重新计算位置.有一个例子InfiniteLoader(反应虚拟化示例),它registerChild在List中用作ref.似乎当InfiniteLoader从服务器收到答案时,它能够强制列表重新呈现行.

我已尝试使用forceUpdate列表中的另一个示例,但List仍未更新.

https://plnkr.co/edit/RftoShEkQW5MR5Rl28Vu

react-virtualized

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

jQuery cookie值是%5Bobject%20Object%5D

我有一个简单的html页面和一个js脚本:HTML页面:

<body>
<input type="text" id = "content">
<button type="button" id="btn"> Save </button>
</body>
Run Code Online (Sandbox Code Playgroud)

使用Javascript:

$(document).ready( function(){
    var cook = $.cookie('theName',  { path: '/'});
     if ( cook )
        alert(cook); 
    $('#btn').click(function(){
        var theName = $('#content').val();
        alert(v.val());
        $.cookie('theName', theName, { path: '/', expires: 7 });
        alert("Cookie done");
    });
});
Run Code Online (Sandbox Code Playgroud)

图书馆:

<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"> </script>
<script type="text/javascript" src = "https://raw.github.com/carhartl/jquery-cookie/master/jquery.cookie.js"> </script>
Run Code Online (Sandbox Code Playgroud)

它应该保存我的名字,当我点击刷新以显示我的名字.唯一的问题是当我尝试读取cookie时,而不是名称显示%5Bobject%20Object%5D.

谢谢.

javascript cookies jquery

3
推荐指数
1
解决办法
2188
查看次数

Haskell:如何将函数模式与递归类型相匹配?

我递归地使用这种类型:

data Expr = Add Expr Expr | Num Int

add (Add (Num a) (Num b)) = a + b 
Run Code Online (Sandbox Code Playgroud)

对于add Add ((Num 1) (Num 2))作品,但我如何为所有递归类型做,如:

add Add( (Add (Num 1) (Num 2)) (Num 3) ) ?
Run Code Online (Sandbox Code Playgroud)

haskell

3
推荐指数
1
解决办法
474
查看次数

Haskell:如何从IO(a)转换为?

我有一个功能,返回我IO (Map.Map String Double),我需要Map.Map String Double,没有IO.

我试图这样做,但它失败了:不在范围内:数据构造函数`IO'.

extractIO (IO (a)) = a
Run Code Online (Sandbox Code Playgroud)

haskell

3
推荐指数
1
解决办法
2515
查看次数

Cassandra是否需要所有服务器都有相同的时间?

我在Windows机器上有一个.NET应用程序,在Linux(CentOS)服务器上有一个Cassandra数据库.Windows机器有时可能在几秒钟内发生,当发生这种情况时,删除或更新查询不会生效.

Cassandra是否要求所有服务器都具有相同的时间?Cassandra驱动程序是否使用时间戳发送我的查询?(我只是编写简单的删除或更新查询,没有时间戳或TTL).

更新:我使用Datastax C#驱动程序

cassandra datastax cassandra-3.0

3
推荐指数
1
解决办法
198
查看次数

为什么客户项目需要引用基础项目和中间项目?

我有3个项目:基础,中间和客户.客户端访问基础项目通过中间一个.我在这里简化了我的问题.我有3个项目的解决方案:

// Animals project
public class FarmAnimal
{
    public string GetFood { get; protected set; }
}

public class Cow : FarmAnimal
{
    public Cow()
    {
        GetFood = "Milk";
    }

}

public class Chicken : FarmAnimal
{
    public Chicken()
    {
        GetFood = "Egg";
    }

}

// Farmer project
public class AbstractFarmer<TAnimal> where TAnimal : FarmAnimal, new()
{
    protected TAnimal animal = new TAnimal();
    public string GetProduct()
    {
        return animal.GetFood;
    }
}

public class CowFarmer: AbstractFarmer<Cow>
{

}

public class ChickenFarmer …
Run Code Online (Sandbox Code Playgroud)

.net c# dll visual-studio

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