我的项目中有一些模型类,比如Customer
,Product
等等,它们有几个字段和它们的setter-getter方法,我需要通过套接字将这些类的对象作为JSONObject与客户端和服务器进行交换.
有没有什么方法可以JSONObject
直接从模型类的对象创建,使对象的字段成为键,该模型类对象的值成为此JSONObject的值.
例:
Customer c = new Customer();
c.setName("Foo Bar");
c.setCity("Atlantis");
.....
/* More such setters and corresponding getters when I need the values */
.....
Run Code Online (Sandbox Code Playgroud)
我创建JSON对象为:
JSONObject jsonc = new JSONObject(c); //I'll use this only once I'm done setting all values.
Run Code Online (Sandbox Code Playgroud)
这让我有点像:
{"name":"Foo Bar","city":"Atlantis"...}
Run Code Online (Sandbox Code Playgroud)
请注意,在我的一些模型类中,某些属性本身就是其他模型类的对象.如:
Product p = new Product();
p.setName("FooBar Cookies");
p.setProductType("Food");
c.setBoughtProduct(p);
Run Code Online (Sandbox Code Playgroud)
在上面这样的情况下,正如我所期望的那样,产生的JSON对象将是:
{"name":"Foo Bar","city":"Atlantis","bought":{"productname":"FooBar Cookies","producttype":"food"}}
Run Code Online (Sandbox Code Playgroud)
我知道我可以创建类似于toJSONString()
每个模型类的东西并且创建并操作它的JSON友好字符串,但是在我之前使用Java创建RESTful服务的经验中(这完全脱离了这个问题的上下文),我可以返回通过使用服务方法的JSON字符串@Produces(MediaType.APPLICATION_JSON)
并具有返回模型类的对象的方法.所以它产生了我可以在客户端使用的JSON字符串.
我想知道它是否有可能在当前场景中获得类似的行为.
任何帮助或建议表示赞赏.谢谢.
我试着SQR
在下面的代码中使用宏的定义:
#define SQR(x) (x*x)
int main()
{
int a, b=3;
a = SQR(b+5); // Ideally should be replaced with (3+5*5+3), though not sure.
printf("%d\n",a);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它打印23
.如果我将宏定义更改为SQR(x) ((x)*(x))
然后输出是预期的,64
.我知道在C中调用宏会用宏的定义替换调用,但是我仍然无法理解它是如何计算的23
.
我有几个ImageView
在A S RelativeLayout
.现在,当用户点击任何ImageView时,我希望将它移动到具有微妙动画的指定位置.
例如; 我最初设置LayoutParams
与ImageView
as 关联的边距layoutparams1.setMargins(90,70,0,0);
,然后将其添加到布局中.
当点击imageview时,我希望它的新位置是200,200
动画.
那么,有可能吗?如果有,那怎么样?
请注意,我以编程方式创建了它们的RelativeLayout
所有子项ImageView
.
而且我是Android开发的新手,所以预计会有一个详尽的答案.
有一些很棒的网络开发工具可以让开发人员的生活变得轻松.像应用LiveReload和CodeKit都是很好的例子.
我对它们感兴趣的是当文件更改写入硬盘时,它们在网页浏览器(无论是Chrome,Firefox还是其他)中进行网页实时重新加载的方式.
他们实际上是怎么做到的?是否有任何Web浏览器供应商公开的API来执行此操作?或者它只是自定义服务器端脚本,它在到达浏览器之前注入到网页(实际上不是由web-developer编写),并且当驱动器上的文件被更改时会发生一些Ajax魔法.
我打算在Python或Vala(Linux)和.NET(Windows)中开发类似的东西,所以如果有可用的文档,请告诉我.
我在Borland的Turbo C++ IDE中学习了C和C++,这是16位版本,具有旧的蓝屏背景,我开始为Windows构建控制台程序.现在Windows Vista和7不支持该IDE以全屏模式运行,我正在寻找GCC附带的类似IDE(不一定来自Borland),并且不需要太多学习使用如果一个人已经使用过Turbo C.那么有没有适用于Windows 7的免费GCC IDE?我不会用它来开发Windows应用程序,因为我需要它来练习数据结构控制台程序.
我是我的大学JSP项目的前端开发人员,到目前为止我使用Sublime Text 2编写标记和我的CSS/Less并直接从Apache Tomcat运行项目,我将项目目录放在webapps
文件夹中,但是后来,该项目需要使用Servlets(显然),我意识到IDE的需要,而开发部分的同事现在坚持使用IDE.
我们将整个项目移植到NetBeans 7.1.1,到目前为止,项目工作正常,NetBeans负责创建/管理Servlet及其web.xml配置的所有麻烦,但我主要处理标记和Less,这是这里真的很乏味.以下是我面临的问题:
较少的文件根本没有语法突出显示.(虽然我提到了这种向.less
文件添加语法高亮的方式).
每次我对标记或CSS进行更改时,我都需要按F5并等到浏览器中的新选项卡启动以反映更改.(浏览器中的刷新页面不像以前的JSP开发方式那样工作).如果我看到之后没有关闭标签,想象10个标签可以进行10次更改.
我经常使用jQuery,在我的.js
文件中看到警告真的很烦我(我知道NetBeans可能指向正确的问题,但我根本不希望它对我的代码"过于聪明").
Web设计人员会知道"在浏览器中保存更改到css和刷新页面"的频率.而IDE只会减慢整个过程.
我知道使用IDE的明显优势,但有没有解决上述问题?
另外,我想移植我的项目到Eclipse(它只是疯了的精缩jQuery的文件),转向NetBeans的面前,但它只是拒绝使用相对路径为我.js
,.css
而且.less
在<script>
和<alt>
标签,即使所有的文件和文件夹存在在Web内容目录中.我得到的只是我的脚本和样式表的404错误,尽管我可以访问这些文件,我手动访问URL.如下:
<link rel="stylesheet/less" href="less/styles.less" media="all" />
<!-- Above line doesn't include the file and I get 404 error -->
Run Code Online (Sandbox Code Playgroud)
但
Visiting to localhost:8080/MyProject/less/styles.less
shows me its content in the browser.
Run Code Online (Sandbox Code Playgroud)
此外,我试图在不使用IDE的情况下使用Servlet(我的Java代码非常简单,以至于我觉得不需要类似IntelliSense的编辑)并提到了这个链接,并且如果我以与解释,但我不明白为什么我需要指定servlet-api.jar
的apache-tomcat\lib
在classpath
在编译的inspite的事实,我有路径已经加入到Apache的lib文件夹的时间CLASSPATH
变量在Windows中.
我知道在这个单一问题中有太多问题可能会被SO主持人"缓和",但我的所有问题都暗示了必须开发JSP/Servlet并在不使用IDE的情况下设计页面的单个问题,以及只是相当有能力的文本编辑器AKA Sublime Text.
请建议我一个坚定的解决方案.
我有VB.NET应用程序与一些外部服务器通信(通过Intranet维护登录会话),我想听取Sleep/Hibernate事件,这样当它发生时,我想在计算机进入睡眠状态之前注销现有的会话系统,虽然我的应用程序将继续在后台运行,但不会做任何事情.
反之亦然,当计算机从Hibernate恢复或从睡眠状态唤醒时,我想立即登录服务器.
如何获取这些事件并执行我的代码?我相信这与我应该在VB中使用的Win32 API有关.
谢谢.
我正在尝试使用DWM API在VB.NET 2010应用程序中查看Aero Glass的表单,但是正如函数调用所示,它将Frame的外观扩展到客户区,如果表单没有边框,则不会发生任何事情和形式将变得无形.那么,我可以在没有任何边框的情况下获得Aero玻璃吗?
我在SO上看到了很多类似的问题,但Socket
在图片中几乎没有任何问题.所以请花些时间阅读这个问题.
我有服务器应用程序(使用ServerSocket
),它监听请求,当客户端尝试连接时,创建新线程以服务客户端(并且服务器返回到新请求的监听模式).现在,我需要根据其他客户端发送到服务器的内容来响应一个客户端.
例:
我对这整个"线程间通信"的事情不熟悉.显然,上面提到的情况听起来很简单,但我正在描述这个以获得提示,因为我将在客户端之间交换大量数据,将服务器保持为中间状态.
另外,如果我想将共享对象限制为10个特定客户端,该怎么办?这样,当第11个客户端连接到服务器时,我创建了新的共享对象,该对象将用于在第11,第12,第13 ......到第20个客户端之间交换数据.等等每一组10个客户端.
我尝试了什么:(我猜是愚蠢的)
public
类,该对象应该被共享为public static
,所以我可以使用它作为全局而不实例化它,就像MyGlobalClass.SharedMsg
.我知道存在明显的锁定问题,因为如果一个线程正在写入一个对象,则其他线程在第一个线程完成写入之前无法访问它.
那么这个问题的理想方法是什么呢?
由于我创建线程来提供传入的连接请求的方式,我无法理解如何在线程之间共享相同的对象,因为如上所述使用Global对象不起作用.
以下是我如何监听传入连接并动态创建服务线程.
// Method of server class
public void startServer()
{
if (!isRunning)
{
try
{
isRunning = true;
while (isRunning)
{
try
{
new ClientHandler(mysocketserver.accept()).start();
}
catch (SocketTimeoutException ex)
{
//nothing to perform here, go back again to listening.
}
catch (SocketException ex)
{
//Not to …
Run Code Online (Sandbox Code Playgroud) 我正在试图做的是运行.java
使用命令通过编译,并从命令提示符下运行它(不使用任何IDE)源javac
和java
和程序与MySQL连接,所以每次我从运行CMD程序,我需要指定的路径使用-classpath
开关的MySQL连接器java
.并且运行该程序的整个命令如下所示:
java -class .;path/to/connector/mysql-connector.jar MySQLConnect
我希望它像其他程序一样简单java MySQLConnect
,它应该运行程序.
有没有什么办法可以添加连接器的路径到Windows的环境变量java
使用它.我已经尝试过CLASSPATH
在Windows环境变量中创建一个新变量,并添加了带文件名的连接器的绝对路径,但是没有用.
请提供此Windows和Ubuntu的解决方法.
谢谢.