Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >有没有办法绕过没有实现Serializable的类呢?

有没有办法绕过没有实现Serializable的类呢?
EN

Stack Overflow用户
提问于 2013-01-21 22:10:38
回答 1查看 291关注 0票数 1

好的,我在一个存储在文件中并从文件中重新加载的HashMap中使用了Bukkit的ItemStack,但是我发现ItemStack.serialize()创建的哈希图中使用的Bukkit并没有实现可序列化。有什么方法可以绕过这个问题吗?谢谢!

编辑:

这是我的插件中的一小段代码。它是引发错误的部分。

代码语言:javascript
运行
AI代码解释
复制
public void onEnable(
{
public Map<NewItem, List<ItemStack>> items = new HashMap<NewItem, List<ItemStack>>();
//Add content to items...
}
public void onDisable()
  {
      try
        {
          Map<List<Map<String, Object>>, NewItem> smap = new HashMap<List<Map<String, Object>>, NewItem>();
          for(NewItem item : items.keySet())
         {
              List<ItemStack> stacks = items.get(item);
                List<Map<String, Object>> stacks2 = new ArrayList<Map<String, Object>>();
              for(ItemStack stack : stacks)
              {
                  stacks2.add(stack.serialize());
                }
              smap.put(stacks2, item);
           }
          SaveLoadAPI.save(smap, this.getDataFolder().getPath()+"\\Items.data");
       }
      catch (Exception e)
        {
          getLogger().severe("Was unable to save the items file to the default path of: "+this.getDataFolder().getPath()+"\\Items.data");
            e.printStackTrace();
       }
  }

这里,最后但肯定是最不重要的,是错误!

代码语言:javascript
运行
AI代码解释
复制
16:08:52 [SEVERE] java.io.NotSerializableException: org.bukkit.craftbukkit.v1_4_
6.inventory.CraftMetaItem
16:08:52 [SEVERE]       at java.io.ObjectOutputStream.writeObject0(Unknown Sourc
e)
16:08:52 [SEVERE]       at java.io.ObjectOutputStream.writeObject(Unknown Source
)
16:08:52 [SEVERE]       at java.util.HashMap.writeObject(Unknown Source)
16:08:52 [SEVERE]       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native M
ethod)
16:08:52 [SEVERE]       at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown S
ource)
16:08:52 [SEVERE]       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unkno
wn Source)
16:08:52 [SEVERE]       at java.lang.reflect.Method.invoke(Unknown Source)
16:08:52 [SEVERE]       at java.io.ObjectStreamClass.invokeWriteObject(Unknown S
ource)
16:08:52 [SEVERE]       at java.io.ObjectOutputStream.writeSerialData(Unknown So
urce)
16:08:52 [SEVERE]       at java.io.ObjectOutputStream.writeOrdinaryObject(Unknow
n Source)
16:08:52 [SEVERE]       at java.io.ObjectOutputStream.writeObject0(Unknown Sourc
e)
16:08:52 [SEVERE]       at java.io.ObjectOutputStream.writeObject(Unknown Source
)
16:08:52 [SEVERE]       at java.util.ArrayList.writeObject(Unknown Source)
16:08:52 [SEVERE]       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native M
ethod)
16:08:52 [SEVERE]       at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown S
ource)
16:08:52 [SEVERE]       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unkno
wn Source)
16:08:52 [SEVERE]       at java.lang.reflect.Method.invoke(Unknown Source)
16:08:52 [SEVERE]       at java.io.ObjectStreamClass.invokeWriteObject(Unknown S
ource)
16:08:52 [SEVERE]       at java.io.ObjectOutputStream.writeSerialData(Unknown So
urce)
16:08:52 [SEVERE]       at java.io.ObjectOutputStream.writeOrdinaryObject(Unknow
n Source)
16:08:52 [SEVERE]       at java.io.ObjectOutputStream.writeObject0(Unknown Sourc
e)
16:08:52 [SEVERE]       at java.io.ObjectOutputStream.writeObject(Unknown Source
)
16:08:52 [SEVERE]       at java.util.HashMap.writeObject(Unknown Source)
16:08:52 [SEVERE]       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native M
ethod)
16:08:52 [SEVERE]       at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown S
ource)
16:08:52 [SEVERE]       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unkno
wn Source)
16:08:52 [SEVERE]       at java.lang.reflect.Method.invoke(Unknown Source)
16:08:52 [SEVERE]       at java.io.ObjectStreamClass.invokeWriteObject(Unknown S
ource)
16:08:52 [SEVERE]       at java.io.ObjectOutputStream.writeSerialData(Unknown So
urce)
16:08:52 [SEVERE]       at java.io.ObjectOutputStream.writeOrdinaryObject(Unknow
n Source)
16:08:52 [SEVERE]       at java.io.ObjectOutputStream.writeObject0(Unknown Sourc
e)
16:08:52 [SEVERE]       at java.io.ObjectOutputStream.writeObject(Unknown Source
)
16:08:52 [SEVERE]       at com.tommy3244.plugins.MakeYourOwnBlocks.SaveLoadAPI.s
ave(SaveLoadAPI.java:16)
16:08:52 [SEVERE]       at com.tommy3244.plugins.MakeYourOwnBlocks.MakeYourOwnBl
ocks.onDisable(MakeYourOwnBlocks.java:86)
16:08:52 [SEVERE]       at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlug
in.java:219)
16:08:52 [SEVERE]       at org.bukkit.plugin.java.JavaPluginLoader.disablePlugin
(JavaPluginLoader.java:481)
16:08:52 [SEVERE]       at org.bukkit.plugin.SimplePluginManager.disablePlugin(S
implePluginManager.java:400)
16:08:52 [SEVERE]       at org.bukkit.plugin.SimplePluginManager.disablePlugins(
SimplePluginManager.java:393)
16:08:52 [SEVERE]       at org.bukkit.plugin.SimplePluginManager.clearPlugins(Si
mplePluginManager.java:434)
16:08:52 [SEVERE]       at org.bukkit.craftbukkit.v1_4_6.CraftServer.reload(Craf
tServer.java:563)
16:08:52 [SEVERE]       at org.bukkit.Bukkit.reload(Bukkit.java:184)
16:08:52 [SEVERE]       at org.bukkit.command.defaults.ReloadCommand.execute(Rel
oadCommand.java:23)
16:08:52 [SEVERE]       at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCo
mmandMap.java:186)
16:08:52 [SEVERE]       at org.bukkit.craftbukkit.v1_4_6.CraftServer.dispatchCom
mand(CraftServer.java:514)
16:08:52 [SEVERE]       at org.bukkit.craftbukkit.v1_4_6.CraftServer.dispatchSer
verCommand(CraftServer.java:506)
16:08:52 [SEVERE]       at net.minecraft.server.v1_4_6.DedicatedServer.al(Dedica
tedServer.java:260)
16:08:52 [SEVERE]       at net.minecraft.server.v1_4_6.DedicatedServer.r(Dedicat
edServer.java:225)
16:08:52 [SEVERE]       at net.minecraft.server.v1_4_6.MinecraftServer.q(Minecra
ftServer.java:494)
16:08:52 [SEVERE]       at net.minecraft.server.v1_4_6.MinecraftServer.run(Minec
raftServer.java:427)
16:08:52 [SEVERE]       at net.minecraft.server.v1_4_6.ThreadServerApplication.r
un(SourceFile:849)
EN

回答 1

Stack Overflow用户

发布于 2013-01-21 22:25:48

查看此post

如果您尝试扩展不可序列化的类,则继承的所有字段(以及私有字段)都不会被序列化。所以,不幸的是,扩展一个有很多字段的类不是一个好的选择。

如果对象org.bukkit.craftbukkit.v1_4_6.inventory.CraftMetaItem是一个字段,您可以将其标记为瞬态以避免序列化,如果这不能解决问题,您可以尝试实现write()和read()方法。有关更多信息,请查看API

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14448156

复制
相关文章
实现两个N*N矩阵的乘法,矩阵由一维数组表示
实现两个N*N矩阵的乘法,矩阵由一维数组表示。 先介绍一下矩阵的加法: 1 void Add(int rows, int cols) 2 { 3 for(int i= 0;i<rows;i++) 4 { 5 for(int j=0;j<cols;j++) 6 result[i][j]=mat1[i][j]+mat2[i][j]; 7 } 8 } 若两个矩阵要做乘法运:只有在一
猿人谷
2018/01/17
1.4K0
实现两个N*N矩阵的乘法,矩阵由一维数组表示
实现两个N*N矩阵的乘法,矩阵由一维数组表示。 先介绍一下矩阵的加法: 1 void Add(int rows, int cols) 2 { 3 for(int i= 0;i<rows;i++) 4 { 5 for(int j=0;j<cols;j++) 6 result[i][j]=mat1[i][j]+mat2[i][j]; 7 } 8 } 若两个矩阵要做乘法运:只有在一
猿人谷
2018/01/17
1.3K0
实现两个N*N矩阵的乘法,矩阵由一维数组表示
实现两个N*N矩阵的乘法,矩阵由一维数组表示。 先介绍一下矩阵的加法: 1 void Add(int rows, int cols) 2 { 3 for(int i= 0;i<rows;i++) 4 { 5 for(int j=0;j<cols;j++) 6 result[i][j]=mat1[i][j]+mat2[i][j]; 7 } 8 } 若两个矩阵要做乘法运:只有在一
猿人谷
2018/01/17
2.3K0
矩阵乘法
#include <stdio.h> #include <stdlib.h> #include <math.h> #define LEN 3
WindCoder
2018/09/20
8440
[每日一题]矩阵乘法
本次的题目来源于C语言网比赛栏目八月月赛第一题,记得去试试看看自己能不能AC哦!!! 题目描述 给定一个N阶矩阵A,输出A的M次幂(M是非负整数) 例如: A = 1 2 3 4 A的2次幂 7 10 15 22 输入 第一行是一个正整数N、M(1< =N< =30, 0< =M< =5),表示矩阵A的阶数和要求的幂数 接下来N行,每行N个绝对值不超过10的非负整数,描述矩阵A的值 输出 输出共N行,每行N个整数,表示A的M次幂所对应的矩阵。相邻的数之间用一个空格隔开
编程范 源代码公司
2018/04/18
1.3K0
java矩阵类,矩阵的乘法
问题如下 矩阵成积.jpg 我采用的是3重循环,先计算的列的结果,应该还可以先计算行的结果,然后求出矩阵的乘法。没有过多的技巧,就是循环的使用。 相关的code package day20180
热心的社会主义接班人
2018/08/02
1.6K0
java矩阵类,矩阵的乘法
09:矩阵乘法
09:矩阵乘法 总时间限制: 1000ms 内存限制: 65536kB描述 计算两个矩阵的乘法。n*m阶的矩阵A乘以m*k阶的矩阵B得到的矩阵C 是n*k阶的,且C[i][j] = A[i][0]*B[0][j] + A[i][1]*B[1][j] + …… +A[i][m-1]*B[m-1][j](C[i][j]表示C矩阵中第i行第j列元素)。 输入第一行为n, m, k,表示A矩阵是n行m列,B矩阵是m行k列,n, m, k均小于100 然后先后输入A和B两个矩阵,A矩阵n行m列,B矩阵m行k列,
attack
2018/04/03
1.7K0
理解矩阵乘法
大多数人在高中,或者大学低年级,都上过一门课《线性代数》。这门课其实是教矩阵。 刚学的时候,还蛮简单的,矩阵加法就是相同位置的数字加一下。 矩阵减法也类似。 矩阵乘以一个常数,就是所有位置都乘以这个数
ruanyf
2018/04/13
1.5K0
理解矩阵乘法
矩阵乘法问题
问题描述 给定n个矩阵:A1,A2,...,An,其中Ai与Ai+1是可乘的,i=1,2...,n-1。确定计算矩阵连乘积的计算次序,使得依此次序计算矩阵连乘积需要的数乘次数最少。 ---- 矩阵乘法
我没有三颗心脏
2018/04/26
1.5K0
矩阵乘法问题
矩阵乘法的java实现
文章目录 1、算法思想 2、代码实现 1、算法思想 最近老是碰到迭代问题,小数太多手算又算不过来,写个矩阵乘法辅助一下吧。 有两个矩阵A和B,计算矩阵A与B相乘之后的结果C。 A的列数必须等于B的行数 用矩阵A的第i行的值分别乘以矩阵B的第J列,然后将结果相加,就得到C[i][j]。 矩阵A的行等于C的行,矩阵B的列等于C的列,这两个数值用来控制循环的次数,但是每一步中需要把行和列中对应的乘机求和,所以再加一个内循环控制乘法求和就行。 下面我们进行矩阵乘法的测试 A = \begin{
别团等shy哥发育
2023/02/25
1.8K0
矩阵乘法的java实现
算法系列-----矩阵(四)-------------矩阵的乘法
而如果该函数被下面调用了,已经判断了a的长度和b的长度是相等的,所以这里只是单独的抽出来而已
wust小吴
2022/03/04
5160
详解Python中的算术乘法、数组乘法与矩阵乘法
(2)列表、元组、字符串这几种类型的对象与整数之间的乘法,表示对列表、元组或字符串进行重复,返回新列表、元组、字符串。
Python小屋屋主
2021/05/11
9.6K0
详解Python中的算术乘法、数组乘法与矩阵乘法
[动态规划] 矩阵链乘法问题
矩阵链乘法问题是指给定一串矩阵序列M₁M2..Mn,求至少需要进行多少次乘法运算才能求得结果
racaljk
2018/08/31
1.8K0
[动态规划] 矩阵链乘法问题
Python|详解矩阵乘法
矩阵相信大家都知道,是线性代数中的知识,就是一系列数集。顾名思义,数字组成的矩形,例如:
算法与编程之美
2020/03/25
2.6K0
彻底理解矩阵乘法
今天的角度比较清奇,我们来讲讲矩阵的乘法。当然了,我告诉你的肯定不是大学教科书上那些填鸭式的云里雾里的计算规则,你可能将规则背下来了,但完全不理解为什么会这样。别怕,我将会在这篇文章中为你带来矩阵乘法的全新体验,就算你大学时代学的高数全忘了也能看懂这篇文章。
米开朗基杨
2019/12/06
1.8K0
彻底理解矩阵乘法
算法训练 矩阵乘法
问题描述   输入两个矩阵,分别是m*s,s*n大小。输出两个矩阵相乘的结果。 输入格式   第一行,空格隔开的三个正整数m,s,n(均不超过200)。   接下来m行,每行s个空格隔开的整数,表示矩阵A(i,j)。   接下来s行,每行n个空格隔开的整数,表示矩阵B(i,j)。 输出格式   m行,每行n个空格隔开的整数,输出相乘後的矩阵C(i,j)的值。 样例输入 2 3 2 1 0 -1 1 1 -3 0 3 1 2 3 1 样例输出 -3 2 -8 2
AI那点小事
2020/04/20
6680
算法训练 矩阵乘法
基础练习 矩阵乘法
  给定一个N阶矩阵A,输出A的M次幂(M是非负整数)   例如:   A =   1 2   3 4   A的2次幂   7 10   15 22
刘开心_1266679
2019/02/14
8840
#100. 矩阵乘法
矩阵乘法 内存限制:256 MiB时间限制:2000 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: 匿名 提交提交记录统计讨论测试数据 题目描述 这是一道模板题。 分别给定 n×p n \times pn×p 和 p×m p \times mp×m 的两个矩阵 A AA 和 B BB,求 A×B A \times BA×B。 输入格式 第一行三个正整数 n nn、p pp、m mm,表示矩阵的长宽。 之后的 n nn 行,每行 p pp 个整数,表示矩阵 A AA。 之后的 p pp 行,每
attack
2018/04/11
1.9K0
#100. 矩阵乘法
Java-矩阵乘法
"Never, never, never, never give up."  -----Winston Leonard Spencer Churchill
圆号本昊
2021/09/24
9210
Java-矩阵乘法
matlab 稀疏矩阵 乘法,Matlab 矩阵运算[通俗易懂]
说明:这一段时间用Matlab做了LDPC码的性能仿真,过程中涉及了大量的矩阵运算,本文记录了Matlab中矩阵的相关知识,特别的说明了稀疏矩阵和有限域中的矩阵。Matlab的运算是在矩阵意义下进行的,这里所提到的是狭义上的矩阵,即通常意义上的矩阵。
全栈程序员站长
2022/09/12
3.1K0

相似问题

矩阵循环乘法

25

矩阵乘法循环

20

N维矩阵乘法python

23

cupy矩阵乘法n次

129

n*n矩阵乘法需要多少步?

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档