类' java.util.HashMap $ Node'没有可写的财产' key'

时间:2017-05-27 08:35:32

标签: java jsf primefaces

如何解决此问题: 我想用primefaces中的celledit功能更改我的bean地图的键。 为了编辑地图的价值,它运作良好。

要更改密钥,我会收到以下错误:

<link rel="stylesheet" type="text/css" href="<?php echo base_url(); ?>assets/css/bootstrap.min.css">

1 个答案:

答案 0 :(得分:1)

您收到错误的原因是entrySet中的键是不可变的。 library(rgl) library(car) library(shiny) makebigcars <- function(n){ newspeed <- sample(cars$speed,n,replace=T) newdist <- sample(cars$dist,n,replace=T) bigcars <- data.frame(speed=newspeed,dist=newdist) bigcars$time = bigcars$dist/bigcars$speed return(bigcars) } ncars <- makebigcars(150) n <- nrow(ncars) colors <- rep("grey", n) ### dummy palette of all greys groups <- as.factor(rep(1:5,n))[1:n] ## groups ui <- fluidPage( hr("Scatter3d"), rglwidgetOutput("plot", width = 800, height = 600) ) server <- (function(input, output) { output$plot <- renderRglwidget({ rgl.open(useNULL=F) scatter3d(x=ncars$speed, y=ncars$dist, z=ncars$time, surface=FALSE, ellipsoid = T, groups = groups, surface.col = colors) par3d(mouseMode = "trackball") rglwidget() }) }) shinyApp(ui = ui, server = server) 方法返回entrySet()。如果您查看Set<Map.Entry>的{​​{3}},您会看到:

  • Map.Entry方法,
  • V getValue()方法,
  • void setValue(V)方法,但
  • 没有K getKey()方法

基本上,void setKey(K)属性对于JavaBeans约定是只读的。这实际上是一件好事,因为如果您可以修改key中的key,那么如果新的{{}}将会遇到什么困难的问题。 1}}与原始地图中另一个条目的Set<Map.Entry>相同。