如何解决此问题: 我想用primefaces中的celledit功能更改我的bean地图的键。 为了编辑地图的价值,它运作良好。
要更改密钥,我会收到以下错误:
<link rel="stylesheet" type="text/css" href="<?php echo base_url(); ?>assets/css/bootstrap.min.css">
答案 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>
相同。