我在Adnroid 2.2 SDK上,无法在MultiUserChat类中获取我的静态块来执行.我试图强制加载它
try
{
String qual = MultiUserChat.class.getName();
ClassLoader.getSystemClassLoader().loadClass(qual);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
它总是击中捕获块.'qual'获得该类的有效名称......它可以是什么?
我的目标是让几个类拥有一个在程序开始时运行的代码块.假设一下,可以随心所欲地将类添加到项目中,并且在开头调用静态函数是不切实际的main.
我试图将初始化例程放在这些类的静态块中,它几乎按预期工作,但并不完全.只有在调用该类中的其他内容后才会调用这些块.这可以通过以下代码证明:
Test.java
public class Test
{
public static void main(String[] args)
{
System.out.println("Begin");
new Another();
}
}
Run Code Online (Sandbox Code Playgroud)
Another.java
public class Another
{
static
{
System.out.println("Another.static{}");
}
public Another()
{
System.out.println("Another.Another()");
}
}
Run Code Online (Sandbox Code Playgroud)
Another2.java
public class Another2
{
static
{
System.out.println("Another2.static{}");
}
public Another2()
{
System.out.println("Another2.Another2()");
}
}
Run Code Online (Sandbox Code Playgroud)
输出是:
Begin
Another.static{}
Another.Another()
Run Code Online (Sandbox Code Playgroud)
可以看出,Another2假设根本不存在.
问题是:是否可以"踢"所有类来执行它们的静态块(如果有的话)?
根据我的理解,通常应该使用类的引用来调用静态方法,或者如果它在静态方法或静态块中,则可以在没有引用的情况下直接调用它.
但是,当从子类静态块调用静态方法时,这是否适用?
为什么它允许这样的东西,因为静态方法不是继承的,它应该只允许使用父类名吗?
public abstract class abs {
/**
* @param args
*/
abstract void m();
static void n(){
System.out.println("satic method");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
class myclass extends abs{
@Override
void m() {
// TODO Auto-generated method stub
}
static{
n();
}
}
Run Code Online (Sandbox Code Playgroud)
为什么我的子类静态块可以调用没有引用或类名的父类静态方法?
我有一个静态块,我想通过脚本更新,通过cron运行.
我已经找到了如何以编程方式创建或检索块,但不知道如何编辑现有块.
这适用于检索块:
// Retrieve the layout object
$layout = Mage::getSingleton('core/layout');
// Generate a CMS block object
$block = $layout->createBlock('cms/block');
// Set the block ID of the static block
$block->setBlockId('my_block_id');
// Write the static block content to screen
echo $block->toHtml();
Run Code Online (Sandbox Code Playgroud)
我想我在这里缺少一些简单的东西,但是在这个块上执行setContent()然后save()只会导致"Invalid method Mage_Cms_Block_Block :: save"
我知道在 .phtml 文件中您可以这样做,例如:
<?php echo $this->helper('derco_core')->getStoreUrl('dcmotosesp')?>
Run Code Online (Sandbox Code Playgroud)
我想在静态块内做同样的事情。提前致谢。
我有一个静态块(标识符是mega_menu)
它有一些像这样的代码:
<ul class="dropdown-menu" role="menu">
<li data-submenu-id="submenu-patas">
<div id="submenu-patas" class="popover">
<h3 class="popover-title">Patas</h3>
<div class="popover-content"><img src="img/patas.png"></div>
</div>
</li>
<li data-submenu-id="submenu-snub-nosed">
<div id="submenu-snub-nosed" class="popover">
<h3 class="popover-title">Golden Snub-Nosed</h3>
<div class="popover-content"><img src="img/snub-nosed.png"></div>
</div>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
在普通的html文件中(我从这里得到这段代码)有一些样式,它的引用如下:
<link href="css/bootstrap.css" rel="stylesheet"> --<--Reference
<style>
body {
padding-top: 60px;
}
</style>
<link href="css/bootstrap-responsive.css" rel="stylesheet"> --<--Reference
<style>
.navbar .popover {
width: 400px;
-webkit-border-top-left-radius: 0px;
-webkit-border-bottom-left-radius: 0px;
border-top-left-radius: 0px;
border-bottom-left-radius: 0px;
overflow: hidden;
}
</style>
Run Code Online (Sandbox Code Playgroud)
还有一些脚本和它的引用如下:
<script src="../jquery.menu-aim.js" type="text/javascript"></script> --<Reference
<script src="js/bootstrap.min.js" type="text/javascript"></script> --<--Reference
<script>
var $menu = …Run Code Online (Sandbox Code Playgroud) 我对下面的代码感到困惑,我预计它会给出一个错误或答案是10但是它给出了20怎么样?
public class test {
public static void main(String[] args) {
System.out.println(x);
}
static{
x=10;
}
static int x=20;
}
Run Code Online (Sandbox Code Playgroud) 我刚刚开始在 magento/admin 上工作。我试图在我的 CMS 页面之一中显示我的静态块,但它不起作用。我试图在谷歌和堆栈交换中找到答案,但没有运气!任何人都可以帮忙吗?谢谢。
以下是详细信息:这是我的静态块
这是我的 CMS 页面:我可以看到文本“是!” 尽管。
最终输出:那个蓝色框是我的 CSS。(jfyi)。
scala 是否有类似于类加载器对 java 中的静态块所做的事情?
例如,scala 中类似于下面的内容:
class A{
static{
System.out.println("This gets called at the time of loading a class by class loader.")
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用 Scala 2.x 和 Apache Spark 2.x
PS:我已经读过什么是Scala相当于Java的静态块?这个答案,但我不想创建伴生对象,然后通过类的构造函数调用它。
编辑:[我的用例]
考虑java的一个场景,我们在静态块中编写Class.forName(“some.jdbc.driver”),然后将jdbc驱动程序放在类路径中。之后类加载器加载我们提到的类。我想做一些完全一样的事情
static-block ×10
magento ×5
java ×4
classloader ×2
android ×1
apache-spark ×1
css ×1
dalvik ×1
javascript ×1
jquery ×1
php ×1
scala ×1
static ×1