只是玩弄Java反射,我想我大部分时间都掌握了它。我从这个问题/答案中了解到,在大多数情况下,我仅限于静态变量。如果我有该类的实例,则可以访问非静态变量,这确实有意义,我得到了很多。
说我有以下两节课:
public class A
{
private static int _staticInt;
public static void main(String[] args)
{
B instanceOfB = new B();
}
}
public class B
{
private int _nonStaticInt;
public Game() {}
}
Run Code Online (Sandbox Code Playgroud)
我知道如何访问_staticInt,这不是问题。我的理解是,我可以以相同的方式获得Fieldfor 。从其他研究(javadocs,trails等)中,我收集到需要一个实例才能获得的值。_nonStaticIntField f = B.class.getDeclaredField("_nonStaticInt");B_nonStaticInt
所以我的问题;由于main是静态的,因此可以访问instanceOfB以便访问的值_nonStaticInt吗?我认为这是不可能的,但是我认为在放弃这个想法之前,最好先咨询比我自己知识渊博的人。
我在很多地方使用单例模式,有时构造函数什么都不做,有时候它会初始化.我想知道是否有办法设置一个抽象类来最小化我的代码重复,即我不需要public static readonly Singleton _Instance = new Singleton();在每个单独的类中,只需要一个基类.我理解接口不是一种选择.
我尝试过使用以下内容(取自此处);
public abstract class Singleton<T> where T : new()
{
static Singleton()
{
}
private static readonly T _Instance = new T();
public static T Instance
{
get { return _Instance; }
}
}
Run Code Online (Sandbox Code Playgroud)
这个问题是我不能覆盖我需要初始化的情况的构造函数.我正在努力做甚么可能吗?或者我应该继续做我正在做的事情,而不是担心基础单身人士课程?
不久之后,我们公司的一位初级开发人员负责创建一个网站,供用户在场外输入时间表.大多数情况下,这是用于居住在海外且带宽有限的人员(它是卫星互联网,所以我们已经看到500毫秒 - 600毫秒的响应时间,通常只有10KB/s或更少,包括10% - 20%的间歇性丢包).
所以这是一个充满挑战的情况......
最近我的任务是帮助大三学生提高网站的速度和功能,主要是为了我自己的利益,因为我通常是桌面开发者.我注意到的一件事是该网站正在使用MultiView,我想知道这是否是最佳方法.我可以看到推理; 下载整个网站一次,然后来回查询,根据需要显示/隐藏各种视图.除了它似乎没有那么顺利.
95%的操作需要服务器运行; 即添加新的时间表 - 需要告诉服务器,服务器又在数据库中创建一个新条目.当服务器完成后,它似乎会导致客户端再次下载整个网页,这显然会适得其反.
所以我的问题如下;
鉴于上述情况,这是预期的行为吗?即一旦服务器完成了它的行动,是否应该重新下载整个网页?如果是这样,这是最适合这种情况的方法吗?为各种功能(时间表/休假/等)设置较小的单个页面会更好吗?
我知道这可能是基于意见,但任何想法或帮助都非常感谢; 为了我们的利益.
我正在尝试创建一个通用的报告系统,以便我可以动态地向我的程序添加报告,而不是每次我必须添加报告时都发布新版本的程序.
目前,我已部分工作;
我的自定义报告SQL与报告名称一起存储在表中.报告名称用于用户单击的按钮,当他们单击按钮时,我希望SQL执行并绑定到gridview,因此它尽可能通用.
这似乎是麻烦来临的地方.获取SQL并执行它很好,但是将它绑定到gridview似乎是不可能的,我只得到一个名为Column的列,它显示1行,其值为System.Object.
我认为问题是因为我从多个表中返回数据,即
SELECT c.CertificateName, e.EntityName,
ce.CertificateDate, ce.CertificateExpiry, ce.CertificateNumber
FROM FCERTSTest.dbo.CertificateEntries ce
INNER JOIN FCERTSTest.dbo.Certificates c
ON c.CertificateID = ce.Certificate_ID
INNER JOIN FCERTSTest.dbo.Entities e
ON e.EntityID = ce.Entity_ID
WHERE FirstNotificationSent = '1'
Run Code Online (Sandbox Code Playgroud)
我正在使用
using (DBContainer db = new DBContainer())
{
grid.DataSource = db.Database.SqlQuery<dynamic>(SQLCommand).ToList();
}
Run Code Online (Sandbox Code Playgroud)
我试着更换dynamic用object,并得到了同样的问题.我明白,最好的解决办法是有一个自定义类和替换dynamic与自定义类,但后来我失去了它的好处是通用为不同的报表可能不会返回相同的结果,我需要一个新的自定义类...
这里真的很困惑.我正在运行Windows 7和管理员帐户,但由于某种原因,以下代码正在崩溃;
public static readonly string Report = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), "report.csv");
StreamWriter sw = new StreamWriter(Report, true);
Run Code Online (Sandbox Code Playgroud)
我收到以下错误;
访问路径'C:\ Users\Trent\Desktop\report.csv'被拒绝.
然后,当我在桌面上看时,我有一个名为"report.csv"的文件夹而不是文件......
我知道它可能是非常基本的东西,但我不知道它是什么,有人有任何想法吗?
我确信这可能已被问到,但我似乎无法找到正确的答案......可能只是使用了错误的搜索条件.无论如何,我有以下代码;
if (e.Menu.Id.Equals(SchedulerMenuItemId.AppointmentMenu) ||
e.Menu.Id.Equals(SchedulerMenuItemId.AppointmentDependencyMenu))
{ ... }
Run Code Online (Sandbox Code Playgroud)
对我来说似乎有点多余/重复.我不能使用按位OR,因为枚举没有标记为Flag.我想这是因为定义了71个枚举值,这有点超出了Flag选项......
可能我可以做一个转换,并让案件"通过",这可能是一个更清洁......
有没有其他方式进行比较,如上面的(考虑到可扩展性和可读性),它可能不仅仅是2次比较.
也许是因为今天是星期五,我只是想的没那么直,但是我希望(并且正在尝试得到)以下查询输出所有用户,NULL如果没有时间表,则在EndDate列中使用。相反,我只会得到具有时间表的用户。
SELECT Users.Name, Timesheets.EndDate
FROM Users
LEFT OUTER JOIN
Timesheets ON Users.idUser = Timesheets.id_User
WHERE (Timesheets.EndDate = CONVERT(DATETIME, '2014-08-15 00:00:00', 102))
Run Code Online (Sandbox Code Playgroud)
最终目标是找到在给定时间内尚未创建时间表的所有用户。
c# ×5
sql ×2
.net ×1
asp.net ×1
enums ×1
java ×1
reflection ×1
singleton ×1
streamwriter ×1
xtragrid ×1