Как я инстанцирую JAXBElement <Строка> объект?

Полиморфная прогулка по дереву , версия Python

#!/usr/bin/python

class Node:
    """base class, you should not process one of these"""
    def process(self):
        raise('you should not be processing a node')

class BinaryNode(Node):
    """base class for binary nodes"""
    def __init__(self, _left, _right):
        self.left = _left
        self.right = _right
    def process(self):
        raise('you should not be processing a binarynode')

class Plus(BinaryNode):
    def process(self):
        return self.left.process() + self.right.process()

class Minus(BinaryNode):
    def process(self):
        return self.left.process() - self.right.process()

class Mul(BinaryNode):
    def process(self):
        return self.left.process() * self.right.process()

class Div(BinaryNode):
    def process(self):
        return self.left.process() / self.right.process()

class Num(Node):
    def __init__(self, _value):
        self.value = _value
    def process(self):
        return self.value

def demo(n):
    print n.process()

demo(Num(2))                                       # 2
demo(Plus(Num(2),Num(5)))                          # 2 + 3
demo(Plus(Mul(Num(2),Num(3)),Div(Num(10),Num(5)))) # (2 * 3) + (10 / 2)

Тесты просто строят двоичные деревья с помощью конструкторов.

структура программы:

абстрактный базовый класс: Node

  • все узлы наследуют от этого класса

абстрактный базовый класс: BinaryNode

  • все бинарные операторы наследуют от этого класса.
  • метод процесса выполняет вычисление выражения и возвращает результат

классы бинарных операторов: Plus, Minus, Mul, Разделите

  • два дочерних узла, по одному для левых и правых подвыражений

Числовой класс: Num

  • содержит лист-узел числовое значение, например 17 или 42
111
задан miguel 10 June 2009 в 11:43
поделиться

2 ответа

Я не знаю, почему вы думаете, что нет конструктора. См. API .

2
ответ дан 24 November 2019 в 03:04
поделиться

Вот как я это делаю. Вам нужно будет получить URL-адрес пространства имен и имя элемента из созданного вами кода.

new JAXBElement(new QName("http://www.novell.com/role/service","userDN"),
                new String("").getClass(),testDN);
6
ответ дан 24 November 2019 в 03:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: